// var stReady , stRepair , stInCombat , stHelp , stNotReady , ImpatienceTreshold ; var vozKirov , vozKirovImpat , vozKirovState , vozKirovOut , vozHrace , mechKirov , mechKirovOut ; var targHrace , targAcquired ; export function programovani_pomocneho_utoku ; var i , poc , veh ; begin
   0: LD_INT 0
   2: PPUSH
   3: PPUSH
   4: PPUSH
   5: PPUSH
// stReady = 0 ;
   6: LD_ADDR_LOC 1
  10: PUSH
  11: LD_INT 0
  13: ST_TO_ADDR
// stRepair = 1 ;
  14: LD_ADDR_LOC 2
  18: PUSH
  19: LD_INT 1
  21: ST_TO_ADDR
// stInCombat = 2 ;
  22: LD_ADDR_LOC 3
  26: PUSH
  27: LD_INT 2
  29: ST_TO_ADDR
// stHelp = 3 ;
  30: LD_ADDR_LOC 4
  34: PUSH
  35: LD_INT 3
  37: ST_TO_ADDR
// stNotReady = 4 ;
  38: LD_ADDR_LOC 5
  42: PUSH
  43: LD_INT 4
  45: ST_TO_ADDR
// ImpatienceTreshold = 3 ;
  46: LD_ADDR_LOC 6
  50: PUSH
  51: LD_INT 3
  53: ST_TO_ADDR
// vozKirov = FilterUnitsInArea ( Om_zone , [ [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) ;
  54: LD_ADDR_LOC 7
  58: PUSH
  59: LD_INT 8
  61: PPUSH
  62: LD_INT 22
  64: PUSH
  65: LD_EXP 2
  69: PUSH
  70: EMPTY
  71: LIST
  72: LIST
  73: PUSH
  74: LD_INT 21
  76: PUSH
  77: LD_INT 2
  79: PUSH
  80: EMPTY
  81: LIST
  82: LIST
  83: PUSH
  84: EMPTY
  85: LIST
  86: LIST
  87: PPUSH
  88: CALL_OW 70
  92: ST_TO_ADDR
// if vozKirov = 0 then
  93: LD_LOC 7
  97: PUSH
  98: LD_INT 0
 100: EQUAL
 101: IFFALSE 110
// Msg ( Malo posil ) ;
 103: LD_STRING Malo posil
 105: PPUSH
 106: CALL_OW 100
// mechKirov := [ ] ;
 110: LD_ADDR_LOC 12
 114: PUSH
 115: EMPTY
 116: ST_TO_ADDR
// vozKirovImpat := [ ] ;
 117: LD_ADDR_LOC 8
 121: PUSH
 122: EMPTY
 123: ST_TO_ADDR
// vozKirovState := [ ] ;
 124: LD_ADDR_LOC 9
 128: PUSH
 129: EMPTY
 130: ST_TO_ADDR
// for veh in vozKirov do
 131: LD_ADDR_VAR 0 4
 135: PUSH
 136: LD_LOC 7
 140: PUSH
 141: FOR_IN
 142: IFFALSE 197
// begin mechKirov := mechKirov ^ IsDrivenBy ( veh ) ;
 144: LD_ADDR_LOC 12
 148: PUSH
 149: LD_LOC 12
 153: PUSH
 154: LD_VAR 0 4
 158: PPUSH
 159: CALL_OW 311
 163: ADD
 164: ST_TO_ADDR
// vozKirovImpat := vozKirovImpat ^ 0 ;
 165: LD_ADDR_LOC 8
 169: PUSH
 170: LD_LOC 8
 174: PUSH
 175: LD_INT 0
 177: ADD
 178: ST_TO_ADDR
// vozKirovState := vozKirovState ^ stReady ;
 179: LD_ADDR_LOC 9
 183: PUSH
 184: LD_LOC 9
 188: PUSH
 189: LD_LOC 1
 193: ADD
 194: ST_TO_ADDR
// end ;
 195: GO 141
 197: POP
 198: POP
// vozHrace = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
 199: LD_ADDR_LOC 11
 203: PUSH
 204: LD_INT 22
 206: PUSH
 207: LD_EXP 1
 211: PUSH
 212: EMPTY
 213: LIST
 214: LIST
 215: PUSH
 216: LD_INT 21
 218: PUSH
 219: LD_INT 2
 221: PUSH
 222: EMPTY
 223: LIST
 224: LIST
 225: PUSH
 226: EMPTY
 227: LIST
 228: LIST
 229: PPUSH
 230: CALL_OW 69
 234: ST_TO_ADDR
// enable ( 200 ) ;
 235: LD_INT 200
 237: ENABLE_MARKED
// enable ( 201 ) ;
 238: LD_INT 201
 240: ENABLE_MARKED
// enable ( 202 ) ;
 241: LD_INT 202
 243: ENABLE_MARKED
// enable ( 10 ) ;
 244: LD_INT 10
 246: ENABLE_MARKED
// end ;
 247: LD_VAR 0 1
 251: RET
// every 0 0$2 marked 200 do var veh , targ , vehHrace , posstarg , vozReady ;
 252: GO 254
 254: DISABLE
 255: LD_INT 0
 257: PPUSH
 258: PPUSH
 259: PPUSH
 260: PPUSH
 261: PPUSH
// begin enable ;
 262: ENABLE
// vozReady := [ ] ;
 263: LD_ADDR_VAR 0 5
 267: PUSH
 268: EMPTY
 269: ST_TO_ADDR
// for veh := 1 to vozKirov do
 270: LD_ADDR_VAR 0 1
 274: PUSH
 275: DOUBLE
 276: LD_INT 1
 278: DEC
 279: ST_TO_ADDR
 280: LD_LOC 7
 284: PUSH
 285: FOR_TO
 286: IFFALSE 455
// begin if IsDead ( vozKirov [ veh ] ) then
 288: LD_LOC 7
 292: PUSH
 293: LD_VAR 0 1
 297: ARRAY
 298: PPUSH
 299: CALL_OW 301
 303: IFFALSE 321
// begin vozRemove ( veh , dead ) ;
 305: LD_VAR 0 1
 309: PPUSH
 310: LD_STRING dead
 312: PPUSH
 313: CALL 1802 0 2
// exit ;
 317: POP
 318: POP
 319: GO 1011
// end ; if ( IsDrivenBy ( vozKirov [ veh ] ) = 0 ) and ( vozKirovState [ veh ] <> stRepair ) then
 321: LD_LOC 7
 325: PUSH
 326: LD_VAR 0 1
 330: ARRAY
 331: PPUSH
 332: CALL_OW 311
 336: PUSH
 337: LD_INT 0
 339: EQUAL
 340: PUSH
 341: LD_LOC 9
 345: PUSH
 346: LD_VAR 0 1
 350: ARRAY
 351: PUSH
 352: LD_LOC 2
 356: NONEQUAL
 357: AND
 358: IFFALSE 376
// begin vozRemove ( veh , empty ) ;
 360: LD_VAR 0 1
 364: PPUSH
 365: LD_STRING empty
 367: PPUSH
 368: CALL 1802 0 2
// exit ;
 372: POP
 373: POP
 374: GO 1011
// end ; if GetLives ( [ vozKirov [ veh ] ] ) < 600 then
 376: LD_LOC 7
 380: PUSH
 381: LD_VAR 0 1
 385: ARRAY
 386: PUSH
 387: EMPTY
 388: LIST
 389: PPUSH
 390: CALL_OW 256
 394: PUSH
 395: LD_INT 600
 397: LESS
 398: IFFALSE 413
// begin vozRepair ( veh ) ;
 400: LD_VAR 0 1
 404: PPUSH
 405: CALL 1968 0 1
// exit ;
 409: POP
 410: POP
 411: GO 1011
// end ; if vozKirovState [ veh ] = stReady then
 413: LD_LOC 9
 417: PUSH
 418: LD_VAR 0 1
 422: ARRAY
 423: PUSH
 424: LD_LOC 1
 428: EQUAL
 429: IFFALSE 453
// vozReady := vozReady ^ vozKirov [ veh ] ;
 431: LD_ADDR_VAR 0 5
 435: PUSH
 436: LD_VAR 0 5
 440: PUSH
 441: LD_LOC 7
 445: PUSH
 446: LD_VAR 0 1
 450: ARRAY
 451: ADD
 452: ST_TO_ADDR
// end ;
 453: GO 285
 455: POP
 456: POP
// if vozReady = 0 then
 457: LD_VAR 0 5
 461: PUSH
 462: LD_INT 0
 464: EQUAL
 465: IFFALSE 469
// exit ;
 467: GO 1011
// targHrace := [ ] ;
 469: LD_ADDR_LOC 14
 473: PUSH
 474: EMPTY
 475: ST_TO_ADDR
// for vehHrace := 1 to vozHrace do
 476: LD_ADDR_VAR 0 3
 480: PUSH
 481: DOUBLE
 482: LD_INT 1
 484: DEC
 485: ST_TO_ADDR
 486: LD_LOC 11
 490: PUSH
 491: FOR_TO
 492: IFFALSE 583
// begin targ := WantsToAttack ( vozHrace [ vehHrace ] ) ;
 494: LD_ADDR_VAR 0 2
 498: PUSH
 499: LD_LOC 11
 503: PUSH
 504: LD_VAR 0 3
 508: ARRAY
 509: PPUSH
 510: CALL_OW 319
 514: ST_TO_ADDR
// if ( targ <> 0 ) and ( GetSide ( targ ) = Amici ) then
 515: LD_VAR 0 2
 519: PUSH
 520: LD_INT 0
 522: NONEQUAL
 523: PUSH
 524: LD_VAR 0 2
 528: PPUSH
 529: CALL_OW 255
 533: PUSH
 534: LD_EXP 4
 538: EQUAL
 539: AND
 540: IFFALSE 581
// begin if InList ( targHrace , targ ) = 0 then
 542: LD_LOC 14
 546: PPUSH
 547: LD_VAR 0 2
 551: PPUSH
 552: CALL 2150 0 2
 556: PUSH
 557: LD_INT 0
 559: EQUAL
 560: IFFALSE 581
// begin targHrace := targHrace ^ [ targ ] ;
 562: LD_ADDR_LOC 14
 566: PUSH
 567: LD_LOC 14
 571: PUSH
 572: LD_VAR 0 2
 576: PUSH
 577: EMPTY
 578: LIST
 579: ADD
 580: ST_TO_ADDR
// end ; end ; end ;
 581: GO 491
 583: POP
 584: POP
// for targ in targHrace do
 585: LD_ADDR_VAR 0 2
 589: PUSH
 590: LD_LOC 14
 594: PUSH
 595: FOR_IN
 596: IFFALSE 730
// begin if InList ( targAcquired , targ ) = 0 then
 598: LD_LOC 15
 602: PPUSH
 603: LD_VAR 0 2
 607: PPUSH
 608: CALL 2150 0 2
 612: PUSH
 613: LD_INT 0
 615: EQUAL
 616: IFFALSE 728
// begin veh := NearestUnitToUnit ( vozReady , targ ) ;
 618: LD_ADDR_VAR 0 1
 622: PUSH
 623: LD_VAR 0 5
 627: PPUSH
 628: LD_VAR 0 2
 632: PPUSH
 633: CALL_OW 74
 637: ST_TO_ADDR
// if veh <> 0 then
 638: LD_VAR 0 1
 642: PUSH
 643: LD_INT 0
 645: NONEQUAL
 646: IFFALSE 728
// begin vozReady := vozReady diff veh ;
 648: LD_ADDR_VAR 0 5
 652: PUSH
 653: LD_VAR 0 5
 657: PUSH
 658: LD_VAR 0 1
 662: DIFF
 663: ST_TO_ADDR
// veh := InList ( vozKirov , veh ) ;
 664: LD_ADDR_VAR 0 1
 668: PUSH
 669: LD_LOC 7
 673: PPUSH
 674: LD_VAR 0 1
 678: PPUSH
 679: CALL 2150 0 2
 683: ST_TO_ADDR
// vozAttack ( veh , targ ) ;
 684: LD_VAR 0 1
 688: PPUSH
 689: LD_VAR 0 2
 693: PPUSH
 694: CALL 2097 0 2
// targAcquired := targAcquired ^ targ ;
 698: LD_ADDR_LOC 15
 702: PUSH
 703: LD_LOC 15
 707: PUSH
 708: LD_VAR 0 2
 712: ADD
 713: ST_TO_ADDR
// if vozReady = 0 then
 714: LD_VAR 0 5
 718: PUSH
 719: LD_INT 0
 721: EQUAL
 722: IFFALSE 728
// exit ;
 724: POP
 725: POP
 726: GO 1011
// end ; end ; end ;
 728: GO 595
 730: POP
 731: POP
// posstarg := FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_or , [ f_type , unit_vehicle ] , [ f_class , class_soldier ] , [ f_btype , b_breastwork ] , [ f_btype , b_bunker ] , [ f_btype , b_armoury ] ] ] ) ;
 732: LD_ADDR_VAR 0 4
 736: PUSH
 737: LD_INT 6
 739: PPUSH
 740: LD_INT 22
 742: PUSH
 743: LD_EXP 4
 747: PUSH
 748: EMPTY
 749: LIST
 750: LIST
 751: PUSH
 752: LD_INT 2
 754: PUSH
 755: LD_INT 21
 757: PUSH
 758: LD_INT 2
 760: PUSH
 761: EMPTY
 762: LIST
 763: LIST
 764: PUSH
 765: LD_INT 25
 767: PUSH
 768: LD_INT 1
 770: PUSH
 771: EMPTY
 772: LIST
 773: LIST
 774: PUSH
 775: LD_INT 30
 777: PUSH
 778: LD_INT 31
 780: PUSH
 781: EMPTY
 782: LIST
 783: LIST
 784: PUSH
 785: LD_INT 30
 787: PUSH
 788: LD_INT 32
 790: PUSH
 791: EMPTY
 792: LIST
 793: LIST
 794: PUSH
 795: LD_INT 30
 797: PUSH
 798: LD_INT 4
 800: PUSH
 801: EMPTY
 802: LIST
 803: LIST
 804: PUSH
 805: EMPTY
 806: LIST
 807: LIST
 808: LIST
 809: LIST
 810: LIST
 811: LIST
 812: PUSH
 813: EMPTY
 814: LIST
 815: LIST
 816: PPUSH
 817: CALL_OW 70
 821: ST_TO_ADDR
// if posstarg = 0 then
 822: LD_VAR 0 4
 826: PUSH
 827: LD_INT 0
 829: EQUAL
 830: IFFALSE 860
// posstarg := FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] ] ) ;
 832: LD_ADDR_VAR 0 4
 836: PUSH
 837: LD_INT 6
 839: PPUSH
 840: LD_INT 22
 842: PUSH
 843: LD_EXP 4
 847: PUSH
 848: EMPTY
 849: LIST
 850: LIST
 851: PUSH
 852: EMPTY
 853: LIST
 854: PPUSH
 855: CALL_OW 70
 859: ST_TO_ADDR
// for veh := 1 to vozKirov do
 860: LD_ADDR_VAR 0 1
 864: PUSH
 865: DOUBLE
 866: LD_INT 1
 868: DEC
 869: ST_TO_ADDR
 870: LD_LOC 7
 874: PUSH
 875: FOR_TO
 876: IFFALSE 1009
// begin if vozKirovState [ veh ] = stReady then
 878: LD_LOC 9
 882: PUSH
 883: LD_VAR 0 1
 887: ARRAY
 888: PUSH
 889: LD_LOC 1
 893: EQUAL
 894: IFFALSE 931
// vozKirovImpat := replace ( vozKirovImpat , veh , vozKirovImpat [ veh ] + 1 ) ;
 896: LD_ADDR_LOC 8
 900: PUSH
 901: LD_LOC 8
 905: PPUSH
 906: LD_VAR 0 1
 910: PPUSH
 911: LD_LOC 8
 915: PUSH
 916: LD_VAR 0 1
 920: ARRAY
 921: PUSH
 922: LD_INT 1
 924: PLUS
 925: PPUSH
 926: CALL_OW 1
 930: ST_TO_ADDR
// if ( vozKirovState [ veh ] = stReady ) and ( vozKirovImpat [ veh ] > ImpatienceTreshold ) then
 931: LD_LOC 9
 935: PUSH
 936: LD_VAR 0 1
 940: ARRAY
 941: PUSH
 942: LD_LOC 1
 946: EQUAL
 947: PUSH
 948: LD_LOC 8
 952: PUSH
 953: LD_VAR 0 1
 957: ARRAY
 958: PUSH
 959: LD_LOC 6
 963: GREATER
 964: AND
 965: IFFALSE 1007
// begin targ := NearestUnitToUnit ( posstarg , vozKirov [ veh ] ) ;
 967: LD_ADDR_VAR 0 2
 971: PUSH
 972: LD_VAR 0 4
 976: PPUSH
 977: LD_LOC 7
 981: PUSH
 982: LD_VAR 0 1
 986: ARRAY
 987: PPUSH
 988: CALL_OW 74
 992: ST_TO_ADDR
// vozAttack ( veh , targ ) ;
 993: LD_VAR 0 1
 997: PPUSH
 998: LD_VAR 0 2
1002: PPUSH
1003: CALL 2097 0 2
// end ; end ;
1007: GO 875
1009: POP
1010: POP
// end ;
1011: PPOPN 5
1013: END
// every 0 0$5 marked 201 do var veh , mech ;
1014: GO 1016
1016: DISABLE
1017: LD_INT 0
1019: PPUSH
1020: PPUSH
// begin enable ;
1021: ENABLE
// for veh := 1 to vozKirov do
1022: LD_ADDR_VAR 0 1
1026: PUSH
1027: DOUBLE
1028: LD_INT 1
1030: DEC
1031: ST_TO_ADDR
1032: LD_LOC 7
1036: PUSH
1037: FOR_TO
1038: IFFALSE 1306
// begin if ( vozKirovState [ veh ] = stRepair ) and ( GetLives ( vozKirov [ veh ] ) = 1000 ) and ( IsDrivenBy ( vozKirov [ veh ] ) <> 0 ) then
1040: LD_LOC 9
1044: PUSH
1045: LD_VAR 0 1
1049: ARRAY
1050: PUSH
1051: LD_LOC 2
1055: EQUAL
1056: PUSH
1057: LD_LOC 7
1061: PUSH
1062: LD_VAR 0 1
1066: ARRAY
1067: PPUSH
1068: CALL_OW 256
1072: PUSH
1073: LD_INT 1000
1075: EQUAL
1076: AND
1077: PUSH
1078: LD_LOC 7
1082: PUSH
1083: LD_VAR 0 1
1087: ARRAY
1088: PPUSH
1089: CALL_OW 311
1093: PUSH
1094: LD_INT 0
1096: NONEQUAL
1097: AND
1098: IFFALSE 1125
// begin vozKirovState := replace ( vozKirovState , veh , stReady ) ;
1100: LD_ADDR_LOC 9
1104: PUSH
1105: LD_LOC 9
1109: PPUSH
1110: LD_VAR 0 1
1114: PPUSH
1115: LD_LOC 1
1119: PPUSH
1120: CALL_OW 1
1124: ST_TO_ADDR
// end ; if ( vozKirovState [ veh ] = stRepair ) and ( GetLives ( vozKirov [ veh ] ) = 1000 ) then
1125: LD_LOC 9
1129: PUSH
1130: LD_VAR 0 1
1134: ARRAY
1135: PUSH
1136: LD_LOC 2
1140: EQUAL
1141: PUSH
1142: LD_LOC 7
1146: PUSH
1147: LD_VAR 0 1
1151: ARRAY
1152: PPUSH
1153: CALL_OW 256
1157: PUSH
1158: LD_INT 1000
1160: EQUAL
1161: AND
1162: IFFALSE 1190
// begin ComEnterUnit ( mechKirov [ veh ] , vozKirov [ veh ] ) ;
1164: LD_LOC 12
1168: PUSH
1169: LD_VAR 0 1
1173: ARRAY
1174: PPUSH
1175: LD_LOC 7
1179: PUSH
1180: LD_VAR 0 1
1184: ARRAY
1185: PPUSH
1186: CALL_OW 120
// end ; if ( vozKirovState [ veh ] = stNotReady ) and IsInArea ( vozKirov [ veh ] , CAuta ) then
1190: LD_LOC 9
1194: PUSH
1195: LD_VAR 0 1
1199: ARRAY
1200: PUSH
1201: LD_LOC 5
1205: EQUAL
1206: PUSH
1207: LD_LOC 7
1211: PUSH
1212: LD_VAR 0 1
1216: ARRAY
1217: PPUSH
1218: LD_INT 39
1220: PPUSH
1221: CALL_OW 308
1225: AND
1226: IFFALSE 1304
// begin vozKirovState := replace ( vozKirovState , veh , stRepair ) ;
1228: LD_ADDR_LOC 9
1232: PUSH
1233: LD_LOC 9
1237: PPUSH
1238: LD_VAR 0 1
1242: PPUSH
1243: LD_LOC 2
1247: PPUSH
1248: CALL_OW 1
1252: ST_TO_ADDR
// ComExitVehicle ( mechKirov [ veh ] ) ;
1253: LD_LOC 12
1257: PUSH
1258: LD_VAR 0 1
1262: ARRAY
1263: PPUSH
1264: CALL_OW 121
// wait ( 5 ) ;
1268: LD_INT 5
1270: PPUSH
1271: CALL_OW 67
// AddComRepairVehicle ( [ mechKirov [ veh ] ] , vozKirov [ veh ] ) ;
1275: LD_LOC 12
1279: PUSH
1280: LD_VAR 0 1
1284: ARRAY
1285: PUSH
1286: EMPTY
1287: LIST
1288: PPUSH
1289: LD_LOC 7
1293: PUSH
1294: LD_VAR 0 1
1298: ARRAY
1299: PPUSH
1300: CALL_OW 189
// end ; end ;
1304: GO 1037
1306: POP
1307: POP
// end ;
1308: PPOPN 2
1310: END
// every 0 0$4 marked 202 do var veh , targ ;
1311: GO 1313
1313: DISABLE
1314: LD_INT 0
1316: PPUSH
1317: PPUSH
// begin enable ;
1318: ENABLE
// targAcquired := [ ] ;
1319: LD_ADDR_LOC 15
1323: PUSH
1324: EMPTY
1325: ST_TO_ADDR
// for veh := 1 to vozKirov do
1326: LD_ADDR_VAR 0 1
1330: PUSH
1331: DOUBLE
1332: LD_INT 1
1334: DEC
1335: ST_TO_ADDR
1336: LD_LOC 7
1340: PUSH
1341: FOR_TO
1342: IFFALSE 1455
// begin if vozKirovState [ veh ] <> stInCombat then
1344: LD_LOC 9
1348: PUSH
1349: LD_VAR 0 1
1353: ARRAY
1354: PUSH
1355: LD_LOC 3
1359: NONEQUAL
1360: IFFALSE 1364
// continue ;
1362: GO 1341
// targ := WantsToAttack ( vozKirov [ veh ] ) ;
1364: LD_ADDR_VAR 0 2
1368: PUSH
1369: LD_LOC 7
1373: PUSH
1374: LD_VAR 0 1
1378: ARRAY
1379: PPUSH
1380: CALL_OW 319
1384: ST_TO_ADDR
// if ( targ = 0 ) then
1385: LD_VAR 0 2
1389: PUSH
1390: LD_INT 0
1392: EQUAL
1393: IFFALSE 1437
// begin ComStop ( vozKirov [ veh ] ) ;
1395: LD_LOC 7
1399: PUSH
1400: LD_VAR 0 1
1404: ARRAY
1405: PPUSH
1406: CALL_OW 141
// vozKirovState := replace ( vozKirovState , veh , stReady ) ;
1410: LD_ADDR_LOC 9
1414: PUSH
1415: LD_LOC 9
1419: PPUSH
1420: LD_VAR 0 1
1424: PPUSH
1425: LD_LOC 1
1429: PPUSH
1430: CALL_OW 1
1434: ST_TO_ADDR
// end else
1435: GO 1453
// begin targAcquired := targAcquired ^ targ ;
1437: LD_ADDR_LOC 15
1441: PUSH
1442: LD_LOC 15
1446: PUSH
1447: LD_VAR 0 2
1451: ADD
1452: ST_TO_ADDR
// end ; end ;
1453: GO 1341
1455: POP
1456: POP
// end ;
1457: PPOPN 2
1459: END
// every 0 0$6 marked 203 do var veh , mech , mechHealth ;
1460: GO 1462
1462: DISABLE
1463: LD_INT 0
1465: PPUSH
1466: PPUSH
1467: PPUSH
// begin enable ;
1468: ENABLE
// for veh in vozKirovOut do
1469: LD_ADDR_VAR 0 1
1473: PUSH
1474: LD_LOC 10
1478: PUSH
1479: FOR_IN
1480: IFFALSE 1511
// begin if IsDead ( veh ) then
1482: LD_VAR 0 1
1486: PPUSH
1487: CALL_OW 301
1491: IFFALSE 1509
// vozKirovOut := vozKirovOut diff veh ;
1493: LD_ADDR_LOC 10
1497: PUSH
1498: LD_LOC 10
1502: PUSH
1503: LD_VAR 0 1
1507: DIFF
1508: ST_TO_ADDR
// end ;
1509: GO 1479
1511: POP
1512: POP
// for mech in mechKirovOut do
1513: LD_ADDR_VAR 0 2
1517: PUSH
1518: LD_LOC 13
1522: PUSH
1523: FOR_IN
1524: IFFALSE 1556
// begin if not ( IsOK ( mech ) ) then
1526: LD_VAR 0 2
1530: PPUSH
1531: CALL_OW 302
1535: NOT
1536: IFFALSE 1554
// mechKirovOut := mechKirovOut diff mech ;
1538: LD_ADDR_LOC 13
1542: PUSH
1543: LD_LOC 13
1547: PUSH
1548: LD_VAR 0 2
1552: DIFF
1553: ST_TO_ADDR
// end ;
1554: GO 1523
1556: POP
1557: POP
// for mech in mechKirovOut do
1558: LD_ADDR_VAR 0 2
1562: PUSH
1563: LD_LOC 13
1567: PUSH
1568: FOR_IN
1569: IFFALSE 1797
// begin veh := IsInUnit ( mech ) ;
1571: LD_ADDR_VAR 0 1
1575: PUSH
1576: LD_VAR 0 2
1580: PPUSH
1581: CALL_OW 310
1585: ST_TO_ADDR
// if veh <> 0 then
1586: LD_VAR 0 1
1590: PUSH
1591: LD_INT 0
1593: NONEQUAL
1594: IFFALSE 1692
// begin vozKirov := vozKirov ^ veh ;
1596: LD_ADDR_LOC 7
1600: PUSH
1601: LD_LOC 7
1605: PUSH
1606: LD_VAR 0 1
1610: ADD
1611: ST_TO_ADDR
// mechKirov := mechKirov ^ mech ;
1612: LD_ADDR_LOC 12
1616: PUSH
1617: LD_LOC 12
1621: PUSH
1622: LD_VAR 0 2
1626: ADD
1627: ST_TO_ADDR
// vozKirovState := vozKirovState ^ stReady ;
1628: LD_ADDR_LOC 9
1632: PUSH
1633: LD_LOC 9
1637: PUSH
1638: LD_LOC 1
1642: ADD
1643: ST_TO_ADDR
// vozKirovImpat := vozKirovImpat ^ 0 ;
1644: LD_ADDR_LOC 8
1648: PUSH
1649: LD_LOC 8
1653: PUSH
1654: LD_INT 0
1656: ADD
1657: ST_TO_ADDR
// vozKirovOut := vozKirovOut diff veh ;
1658: LD_ADDR_LOC 10
1662: PUSH
1663: LD_LOC 10
1667: PUSH
1668: LD_VAR 0 1
1672: DIFF
1673: ST_TO_ADDR
// mechKirovOut := mechKirovOut diff mech ;
1674: LD_ADDR_LOC 13
1678: PUSH
1679: LD_LOC 13
1683: PUSH
1684: LD_VAR 0 2
1688: DIFF
1689: ST_TO_ADDR
// continue ;
1690: GO 1568
// end ; mechHealth := GetLives ( mech ) ;
1692: LD_ADDR_VAR 0 3
1696: PUSH
1697: LD_VAR 0 2
1701: PPUSH
1702: CALL_OW 256
1706: ST_TO_ADDR
// wait ( 5 ) ;
1707: LD_INT 5
1709: PPUSH
1710: CALL_OW 67
// if mechHealth > GetLives ( mech ) then
1714: LD_VAR 0 3
1718: PUSH
1719: LD_VAR 0 2
1723: PPUSH
1724: CALL_OW 256
1728: GREATER
1729: IFFALSE 1748
// begin ComMoveToArea ( [ mech ] , CAuta ) ;
1731: LD_VAR 0 2
1735: PUSH
1736: EMPTY
1737: LIST
1738: PPUSH
1739: LD_INT 39
1741: PPUSH
1742: CALL_OW 113
// continue ;
1746: GO 1568
// end ; if vozKirovOut > 0 then
1748: LD_LOC 10
1752: PUSH
1753: LD_INT 0
1755: GREATER
1756: IFFALSE 1795
// begin veh := NearestUnitToUnit ( vozKirovOut , mech ) ;
1758: LD_ADDR_VAR 0 1
1762: PUSH
1763: LD_LOC 10
1767: PPUSH
1768: LD_VAR 0 2
1772: PPUSH
1773: CALL_OW 74
1777: ST_TO_ADDR
// ComEnterUnit ( [ mech ] , veh ) ;
1778: LD_VAR 0 2
1782: PUSH
1783: EMPTY
1784: LIST
1785: PPUSH
1786: LD_VAR 0 1
1790: PPUSH
1791: CALL_OW 120
// end ; end ;
1795: GO 1568
1797: POP
1798: POP
// end ;
1799: PPOPN 3
1801: END
// function vozRemove ( veh , typ ) ; begin
1802: LD_INT 0
1804: PPUSH
// if IsLive ( vozKirov [ veh ] ) then
1805: LD_LOC 7
1809: PUSH
1810: LD_VAR 0 1
1814: ARRAY
1815: PPUSH
1816: CALL_OW 300
1820: IFFALSE 1844
// vozKirovOut := vozKirovOut ^ vozKirov [ veh ] ;
1822: LD_ADDR_LOC 10
1826: PUSH
1827: LD_LOC 10
1831: PUSH
1832: LD_LOC 7
1836: PUSH
1837: LD_VAR 0 1
1841: ARRAY
1842: ADD
1843: ST_TO_ADDR
// vozKirov := delete ( vozKirov , veh ) ;
1844: LD_ADDR_LOC 7
1848: PUSH
1849: LD_LOC 7
1853: PPUSH
1854: LD_VAR 0 1
1858: PPUSH
1859: CALL_OW 3
1863: ST_TO_ADDR
// if IsOK ( mechKirov [ veh ] ) then
1864: LD_LOC 12
1868: PUSH
1869: LD_VAR 0 1
1873: ARRAY
1874: PPUSH
1875: CALL_OW 302
1879: IFFALSE 1903
// mechKirovOut := mechKirovOut ^ mechKirov [ veh ] ;
1881: LD_ADDR_LOC 13
1885: PUSH
1886: LD_LOC 13
1890: PUSH
1891: LD_LOC 12
1895: PUSH
1896: LD_VAR 0 1
1900: ARRAY
1901: ADD
1902: ST_TO_ADDR
// mechKirov := delete ( mechKirov , veh ) ;
1903: LD_ADDR_LOC 12
1907: PUSH
1908: LD_LOC 12
1912: PPUSH
1913: LD_VAR 0 1
1917: PPUSH
1918: CALL_OW 3
1922: ST_TO_ADDR
// vozKirovState := delete ( vozKirovState , veh ) ;
1923: LD_ADDR_LOC 9
1927: PUSH
1928: LD_LOC 9
1932: PPUSH
1933: LD_VAR 0 1
1937: PPUSH
1938: CALL_OW 3
1942: ST_TO_ADDR
// vozKirovImpat := delete ( vozKirovImpat , veh ) ;
1943: LD_ADDR_LOC 8
1947: PUSH
1948: LD_LOC 8
1952: PPUSH
1953: LD_VAR 0 1
1957: PPUSH
1958: CALL_OW 3
1962: ST_TO_ADDR
// end ;
1963: LD_VAR 0 3
1967: RET
// function vozRepair ( veh ) ; var tVeh , tMech , tMechHealth ; begin
1968: LD_INT 0
1970: PPUSH
1971: PPUSH
1972: PPUSH
1973: PPUSH
// if vozKirovState [ veh ] = stRepair then
1974: LD_LOC 9
1978: PUSH
1979: LD_VAR 0 1
1983: ARRAY
1984: PUSH
1985: LD_LOC 2
1989: EQUAL
1990: IFFALSE 1994
// exit ;
1992: GO 2092
// tVeh := [ vozKirov [ veh ] ] ;
1994: LD_ADDR_VAR 0 3
1998: PUSH
1999: LD_LOC 7
2003: PUSH
2004: LD_VAR 0 1
2008: ARRAY
2009: PUSH
2010: EMPTY
2011: LIST
2012: ST_TO_ADDR
// tMech := [ mechKirov [ veh ] ] ;
2013: LD_ADDR_VAR 0 4
2017: PUSH
2018: LD_LOC 12
2022: PUSH
2023: LD_VAR 0 1
2027: ARRAY
2028: PUSH
2029: EMPTY
2030: LIST
2031: ST_TO_ADDR
// vozKirovState := replace ( vozKirovState , veh , stNotReady ) ;
2032: LD_ADDR_LOC 9
2036: PUSH
2037: LD_LOC 9
2041: PPUSH
2042: LD_VAR 0 1
2046: PPUSH
2047: LD_LOC 5
2051: PPUSH
2052: CALL_OW 1
2056: ST_TO_ADDR
// vozKirovImpat := replace ( vozKirovImpat , veh , 0 ) ;
2057: LD_ADDR_LOC 8
2061: PUSH
2062: LD_LOC 8
2066: PPUSH
2067: LD_VAR 0 1
2071: PPUSH
2072: LD_INT 0
2074: PPUSH
2075: CALL_OW 1
2079: ST_TO_ADDR
// ComMoveToArea ( tVeh , CAuta ) ;
2080: LD_VAR 0 3
2084: PPUSH
2085: LD_INT 39
2087: PPUSH
2088: CALL_OW 113
// end ;
2092: LD_VAR 0 2
2096: RET
// function vozAttack ( veh , targ ) ; begin
2097: LD_INT 0
2099: PPUSH
// vozKirovState := replace ( vozKirovState , veh , stInCombat ) ;
2100: LD_ADDR_LOC 9
2104: PUSH
2105: LD_LOC 9
2109: PPUSH
2110: LD_VAR 0 1
2114: PPUSH
2115: LD_LOC 3
2119: PPUSH
2120: CALL_OW 1
2124: ST_TO_ADDR
// ComAttackUnit ( vozKirov [ veh ] , targ ) ;
2125: LD_LOC 7
2129: PUSH
2130: LD_VAR 0 1
2134: ARRAY
2135: PPUSH
2136: LD_VAR 0 2
2140: PPUSH
2141: CALL_OW 115
// end ;
2145: LD_VAR 0 3
2149: RET
// function InList ( ls , un ) ; var u ; begin
2150: LD_INT 0
2152: PPUSH
2153: PPUSH
// result := 0 ;
2154: LD_ADDR_VAR 0 3
2158: PUSH
2159: LD_INT 0
2161: ST_TO_ADDR
// for u := 1 to ls do
2162: LD_ADDR_VAR 0 4
2166: PUSH
2167: DOUBLE
2168: LD_INT 1
2170: DEC
2171: ST_TO_ADDR
2172: LD_VAR 0 1
2176: PUSH
2177: FOR_TO
2178: IFFALSE 2214
// if un = ls [ u ] then
2180: LD_VAR 0 2
2184: PUSH
2185: LD_VAR 0 1
2189: PUSH
2190: LD_VAR 0 4
2194: ARRAY
2195: EQUAL
2196: IFFALSE 2212
// begin result := u ;
2198: LD_ADDR_VAR 0 3
2202: PUSH
2203: LD_VAR 0 4
2207: ST_TO_ADDR
// exit ;
2208: POP
2209: POP
2210: GO 2216
// end ;
2212: GO 2177
2214: POP
2215: POP
// end ;
2216: LD_VAR 0 3
2220: RET
// function GetClosestUnit ( un , ls ) ; var u , dist ; begin
2221: LD_INT 0
2223: PPUSH
2224: PPUSH
2225: PPUSH
// dist := GetDistUnits ( un , ls [ 1 ] ) ;
2226: LD_ADDR_VAR 0 5
2230: PUSH
2231: LD_VAR 0 1
2235: PPUSH
2236: LD_VAR 0 2
2240: PUSH
2241: LD_INT 1
2243: ARRAY
2244: PPUSH
2245: CALL_OW 296
2249: ST_TO_ADDR
// result := 1 ;
2250: LD_ADDR_VAR 0 3
2254: PUSH
2255: LD_INT 1
2257: ST_TO_ADDR
// for u := 1 to ls do
2258: LD_ADDR_VAR 0 4
2262: PUSH
2263: DOUBLE
2264: LD_INT 1
2266: DEC
2267: ST_TO_ADDR
2268: LD_VAR 0 2
2272: PUSH
2273: FOR_TO
2274: IFFALSE 2342
// begin if GetDistUnits ( un , ls [ u ] ) < dist then
2276: LD_VAR 0 1
2280: PPUSH
2281: LD_VAR 0 2
2285: PUSH
2286: LD_VAR 0 4
2290: ARRAY
2291: PPUSH
2292: CALL_OW 296
2296: PUSH
2297: LD_VAR 0 5
2301: LESS
2302: IFFALSE 2340
// begin result := u ;
2304: LD_ADDR_VAR 0 3
2308: PUSH
2309: LD_VAR 0 4
2313: ST_TO_ADDR
// dist := GetDistUnits ( un , ls [ u ] ) ;
2314: LD_ADDR_VAR 0 5
2318: PUSH
2319: LD_VAR 0 1
2323: PPUSH
2324: LD_VAR 0 2
2328: PUSH
2329: LD_VAR 0 4
2333: ARRAY
2334: PPUSH
2335: CALL_OW 296
2339: ST_TO_ADDR
// end ; end ;
2340: GO 2273
2342: POP
2343: POP
// end ;
2344: LD_VAR 0 3
2348: RET
// every 0 0$1 marked 10 do var i ; var auta , autapom ; var poc ;
2349: GO 2351
2351: DISABLE
2352: LD_INT 0
2354: PPUSH
2355: PPUSH
2356: PPUSH
2357: PPUSH
// begin auta = FilterUnitsInArea ( RU2_base , [ [ f_type , unit_vehicle ] , [ f_occupied ] ] ) ;
2358: LD_ADDR_VAR 0 2
2362: PUSH
2363: LD_INT 2
2365: PPUSH
2366: LD_INT 21
2368: PUSH
2369: LD_INT 2
2371: PUSH
2372: EMPTY
2373: LIST
2374: LIST
2375: PUSH
2376: LD_INT 59
2378: PUSH
2379: EMPTY
2380: LIST
2381: PUSH
2382: EMPTY
2383: LIST
2384: LIST
2385: PPUSH
2386: CALL_OW 70
2390: ST_TO_ADDR
// for i in auta do
2391: LD_ADDR_VAR 0 1
2395: PUSH
2396: LD_VAR 0 2
2400: PUSH
2401: FOR_IN
2402: IFFALSE 2481
// begin ComMoveToArea ( i , Zarea_utok ) ;
2404: LD_VAR 0 1
2408: PPUSH
2409: LD_INT 50
2411: PPUSH
2412: CALL_OW 113
// AddComAgressiveMove ( i , 28 , 15 ) ;
2416: LD_VAR 0 1
2420: PPUSH
2421: LD_INT 28
2423: PPUSH
2424: LD_INT 15
2426: PPUSH
2427: CALL_OW 174
// AddComAttackUnit ( i , Am_bu3 ) ;
2431: LD_VAR 0 1
2435: PPUSH
2436: LD_INT 19
2438: PPUSH
2439: CALL_OW 175
// AddComAgressiveMove ( i , 13 , 9 ) ;
2443: LD_VAR 0 1
2447: PPUSH
2448: LD_INT 13
2450: PPUSH
2451: LD_INT 9
2453: PPUSH
2454: CALL_OW 174
// RUSKE_POSILY_RIDICI_LIST = RUSKE_POSILY_RIDICI_LIST diff IsDrivenBy ( i ) ;
2458: LD_ADDR_EXP 55
2462: PUSH
2463: LD_EXP 55
2467: PUSH
2468: LD_VAR 0 1
2472: PPUSH
2473: CALL_OW 311
2477: DIFF
2478: ST_TO_ADDR
// end ;
2479: GO 2401
2481: POP
2482: POP
// auta = FilterUnitsInArea ( RU2_base , [ [ f_type , unit_vehicle ] , f_not , [ f_occupied ] ] ) ;
2483: LD_ADDR_VAR 0 2
2487: PUSH
2488: LD_INT 2
2490: PPUSH
2491: LD_INT 21
2493: PUSH
2494: LD_INT 2
2496: PUSH
2497: EMPTY
2498: LIST
2499: LIST
2500: PUSH
2501: LD_INT 3
2503: PUSH
2504: LD_INT 59
2506: PUSH
2507: EMPTY
2508: LIST
2509: PUSH
2510: EMPTY
2511: LIST
2512: LIST
2513: LIST
2514: PPUSH
2515: CALL_OW 70
2519: ST_TO_ADDR
// poc = 1 ;
2520: LD_ADDR_VAR 0 4
2524: PUSH
2525: LD_INT 1
2527: ST_TO_ADDR
// for i in RUSKE_POSILY_RIDICI_LIST do
2528: LD_ADDR_VAR 0 1
2532: PUSH
2533: LD_EXP 55
2537: PUSH
2538: FOR_IN
2539: IFFALSE 2593
// begin if auta + 0 >= poc then
2541: LD_VAR 0 2
2545: PUSH
2546: LD_INT 0
2548: PLUS
2549: PUSH
2550: LD_VAR 0 4
2554: GREATEREQUAL
2555: IFFALSE 2577
// ComEnterUnit ( i , auta [ poc ] ) ;
2557: LD_VAR 0 1
2561: PPUSH
2562: LD_VAR 0 2
2566: PUSH
2567: LD_VAR 0 4
2571: ARRAY
2572: PPUSH
2573: CALL_OW 120
// poc = poc + 1 ;
2577: LD_ADDR_VAR 0 4
2581: PUSH
2582: LD_VAR 0 4
2586: PUSH
2587: LD_INT 1
2589: PLUS
2590: ST_TO_ADDR
// end ;
2591: GO 2538
2593: POP
2594: POP
// if RUSKE_POSILY_RIDICI_LIST <> 0 then
2595: LD_EXP 55
2599: PUSH
2600: LD_INT 0
2602: NONEQUAL
2603: IFFALSE 2606
// enable ;
2605: ENABLE
// end ; end_of_file
2606: PPOPN 4
2608: END
// export You , You2 , You3 , Amici , Arabi ; starting begin RandomizeAll ;
2609: CALL_OW 11
// InitHc ;
2613: CALL_OW 19
// InitBc ;
2617: CALL_OW 21
// InitVc ;
2621: CALL_OW 20
// InitUc ;
2625: CALL_OW 18
// set_difficulty ;
2629: CALL 5396 0 0
// load_postav ;
2633: CALL 3416 0 0
// load_promenne ;
2637: CALL 3568 0 0
// You = 3 ;
2641: LD_ADDR_EXP 1
2645: PUSH
2646: LD_INT 3
2648: ST_TO_ADDR
// You2 = 6 ;
2649: LD_ADDR_EXP 2
2653: PUSH
2654: LD_INT 6
2656: ST_TO_ADDR
// You3 = 5 ;
2657: LD_ADDR_EXP 3
2661: PUSH
2662: LD_INT 5
2664: ST_TO_ADDR
// Amici = 1 ;
2665: LD_ADDR_EXP 4
2669: PUSH
2670: LD_INT 1
2672: ST_TO_ADDR
// Arabi = 2 ;
2673: LD_ADDR_EXP 5
2677: PUSH
2678: LD_INT 2
2680: ST_TO_ADDR
// placni_budovy_z_predesle_mise ;
2681: CALL 3775 0 0
// RevealFogArea ( You , CelaRU02 ) ;
2685: LD_EXP 1
2689: PPUSH
2690: LD_INT 36
2692: PPUSH
2693: CALL_OW 332
// RevealFogArea ( You2 , CelaRU02 ) ;
2697: LD_EXP 2
2701: PPUSH
2702: LD_INT 36
2704: PPUSH
2705: CALL_OW 332
// create_arabsky_utok ;
2709: CALL 19496 0 0
// create_americka_pomoc_hlidce ;
2713: CALL 17420 0 0
// create_americke_posily ;
2717: CALL 18289 0 0
// create_ruske_posily_na_omicron ;
2721: CALL 20645 0 0
// create_arabi_komanda ;
2725: CALL 21617 0 0
// create_ru_posily_ma_utek ;
2729: CALL 22463 0 0
// create_arabi_na_posily_kirovu ;
2733: CALL 22915 0 0
// create_cerpaci_ruske_auta ;
2737: CALL 23367 0 0
// create_am_jednotky ;
2741: CALL 21287 0 0
// set_skily_amikum ;
2745: CALL 17773 0 0
// uklid_rusu ;
2749: CALL 6164 0 0
// ChangeSideFog ( You , You ) ;
2753: LD_EXP 1
2757: PPUSH
2758: LD_EXP 1
2762: PPUSH
2763: CALL_OW 343
// ChangeSideFog ( You2 , You ) ;
2767: LD_EXP 2
2771: PPUSH
2772: LD_EXP 1
2776: PPUSH
2777: CALL_OW 343
// pojmenovani_zakladen ;
2781: CALL 5821 0 0
// InGameOn ;
2785: CALL_OW 8
// CenterOnXY ( 137 , 76 ) ;
2789: LD_INT 137
2791: PPUSH
2792: LD_INT 76
2794: PPUSH
2795: CALL_OW 84
// RevealFogArea ( You , CelaRU02 ) ;
2799: LD_EXP 1
2803: PPUSH
2804: LD_INT 36
2806: PPUSH
2807: CALL_OW 332
// RevealFogArea ( You2 , CelaRU02 ) ;
2811: LD_EXP 2
2815: PPUSH
2816: LD_INT 36
2818: PPUSH
2819: CALL_OW 332
// uvodni_pokec ;
2823: CALL 10885 0 0
// end ;
2827: END
// on UnitDestroyed ( un ) do begin if un = bur then
2828: LD_VAR 0 1
2832: PUSH
2833: LD_EXP 27
2837: EQUAL
2838: IFFALSE 2847
// YouLost ( Burlak ) ;
2840: LD_STRING Burlak
2842: PPUSH
2843: CALL_OW 104
// enable ;
2847: ENABLE
// end ;
2848: PPOPN 1
2850: END
// export function konec_mise_lhani ; begin
2851: LD_INT 0
2853: PPUSH
// hlaska_lhani ;
2854: CALL 16355 0 0
// YouLost ( Vehicles ) ;
2858: LD_STRING Vehicles
2860: PPUSH
2861: CALL_OW 104
// end ;
2865: LD_VAR 0 1
2869: RET
// export function konec_pred_omikronem ; begin
2870: LD_INT 0
2872: PPUSH
// YouLost ( Delay ) ;
2873: LD_STRING Delay
2875: PPUSH
2876: CALL_OW 104
// end ;
2880: LD_VAR 0 1
2884: RET
// export function konec_mise_utok ; begin
2885: LD_INT 0
2887: PPUSH
// YouLost ( SelfAttack ) ;
2888: LD_STRING SelfAttack
2890: PPUSH
2891: CALL_OW 104
// end ;
2895: LD_VAR 0 1
2899: RET
// export function konec_mise ; var i , pom , pom1 ; var zivi ; var drv ; var mrtvi ; var all_people ; begin
2900: LD_INT 0
2902: PPUSH
2903: PPUSH
2904: PPUSH
2905: PPUSH
2906: PPUSH
2907: PPUSH
2908: PPUSH
2909: PPUSH
// DisableExclamations ;
2910: CALL_OW 474
// gained_medals := [ ] ;
2914: LD_ADDR_OWVAR 61
2918: PUSH
2919: EMPTY
2920: ST_TO_ADDR
// missing_medals := [ ] ;
2921: LD_ADDR_OWVAR 62
2925: PUSH
2926: EMPTY
2927: ST_TO_ADDR
// if Prezite_posily >= muze_projit_posil [ difficulty ] then
2928: LD_EXP 71
2932: PUSH
2933: LD_EXP 20
2937: PUSH
2938: LD_OWVAR 67
2942: ARRAY
2943: GREATEREQUAL
2944: IFFALSE 2959
// AddMedal ( PreventReinforcements , - 1 ) else
2946: LD_STRING PreventReinforcements
2948: PPUSH
2949: LD_INT 1
2951: NEG
2952: PPUSH
2953: CALL_OW 101
2957: GO 2969
// AddMedal ( PreventReinforcements , 1 ) ;
2959: LD_STRING PreventReinforcements
2961: PPUSH
2962: LD_INT 1
2964: PPUSH
2965: CALL_OW 101
// if scholtze_saved then
2969: LD_EXP 35
2973: IFFALSE 2987
// AddMedal ( Scholtze , 1 ) else
2975: LD_STRING Scholtze
2977: PPUSH
2978: LD_INT 1
2980: PPUSH
2981: CALL_OW 101
2985: GO 2998
// AddMedal ( Scholtze , - 1 ) ;
2987: LD_STRING Scholtze
2989: PPUSH
2990: LD_INT 1
2992: NEG
2993: PPUSH
2994: CALL_OW 101
// case stav_aut_new of 1 :
2998: LD_EXP 44
3002: PUSH
3003: LD_INT 1
3005: DOUBLE
3006: EQUAL
3007: IFTRUE 3011
3009: GO 3024
3011: POP
// AddMedal ( Surplus , 1 ) ; 2 :
3012: LD_STRING Surplus
3014: PPUSH
3015: LD_INT 1
3017: PPUSH
3018: CALL_OW 101
3022: GO 3080
3024: LD_INT 2
3026: DOUBLE
3027: EQUAL
3028: IFTRUE 3032
3030: GO 3046
3032: POP
// AddMedal ( Surplus , - 1 ) ; 3 :
3033: LD_STRING Surplus
3035: PPUSH
3036: LD_INT 1
3038: NEG
3039: PPUSH
3040: CALL_OW 101
3044: GO 3080
3046: LD_INT 3
3048: DOUBLE
3049: EQUAL
3050: IFTRUE 3054
3052: GO 3068
3054: POP
// AddMedal ( Surplus , - 2 ) ; else
3055: LD_STRING Surplus
3057: PPUSH
3058: LD_INT 2
3060: NEG
3061: PPUSH
3062: CALL_OW 101
3066: GO 3080
3068: POP
// AddMedal ( Surplus , - 1 ) ; end ;
3069: LD_STRING Surplus
3071: PPUSH
3072: LD_INT 1
3074: NEG
3075: PPUSH
3076: CALL_OW 101
// GiveMedals ( Main ) ;
3080: LD_STRING Main
3082: PPUSH
3083: CALL_OW 102
// all_people := FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
3087: LD_ADDR_VAR 0 8
3091: PUSH
3092: LD_INT 22
3094: PUSH
3095: LD_EXP 1
3099: PUSH
3100: EMPTY
3101: LIST
3102: LIST
3103: PUSH
3104: LD_INT 21
3106: PUSH
3107: LD_INT 1
3109: PUSH
3110: EMPTY
3111: LIST
3112: LIST
3113: PUSH
3114: EMPTY
3115: LIST
3116: LIST
3117: PPUSH
3118: CALL_OW 69
3122: ST_TO_ADDR
// RewardPeople ( all_people ) ;
3123: LD_VAR 0 8
3127: PPUSH
3128: CALL_OW 43
// if not ( bel in all_people ) then
3132: LD_EXP 30
3136: PUSH
3137: LD_VAR 0 8
3141: IN
3142: NOT
3143: IFFALSE 3154
// KillUnit ( bel ) ;
3145: LD_EXP 30
3149: PPUSH
3150: CALL_OW 66
// if not ( gny in all_people ) then
3154: LD_EXP 29
3158: PUSH
3159: LD_VAR 0 8
3163: IN
3164: NOT
3165: IFFALSE 3176
// KillUnit ( gny ) ;
3167: LD_EXP 29
3171: PPUSH
3172: CALL_OW 66
// if not ( kov in all_people ) then
3176: LD_EXP 28
3180: PUSH
3181: LD_VAR 0 8
3185: IN
3186: NOT
3187: IFFALSE 3198
// KillUnit ( kov ) ;
3189: LD_EXP 28
3193: PPUSH
3194: CALL_OW 66
// if not ( schol in all_people ) then
3198: LD_EXP 31
3202: PUSH
3203: LD_VAR 0 8
3207: IN
3208: NOT
3209: IFFALSE 3220
// KillUnit ( schol ) ;
3211: LD_EXP 31
3215: PPUSH
3216: CALL_OW 66
// SaveCharacters ( bur , Burlak ) ;
3220: LD_EXP 27
3224: PPUSH
3225: LD_STRING Burlak
3227: PPUSH
3228: CALL_OW 38
// SaveCharacters ( bel , Belkov ) ;
3232: LD_EXP 30
3236: PPUSH
3237: LD_STRING Belkov
3239: PPUSH
3240: CALL_OW 38
// SaveCharacters ( gny , Gnyevko ) ;
3244: LD_EXP 29
3248: PPUSH
3249: LD_STRING Gnyevko
3251: PPUSH
3252: CALL_OW 38
// SaveCharacters ( kov , Kovalyuk ) ;
3256: LD_EXP 28
3260: PPUSH
3261: LD_STRING Kovalyuk
3263: PPUSH
3264: CALL_OW 38
// SaveCharacters ( schol , Scholtze ) ;
3268: LD_EXP 31
3272: PPUSH
3273: LD_STRING Scholtze
3275: PPUSH
3276: CALL_OW 38
// SaveCharacters ( pop , Popov ) ;
3280: LD_EXP 26
3284: PPUSH
3285: LD_STRING Popov
3287: PPUSH
3288: CALL_OW 38
// pom := all_people diff [ bur , kur , bel , gny , kov , schol , schol2 , pop ] ;
3292: LD_ADDR_VAR 0 3
3296: PUSH
3297: LD_VAR 0 8
3301: PUSH
3302: LD_EXP 27
3306: PUSH
3307: LD_EXP 25
3311: PUSH
3312: LD_EXP 30
3316: PUSH
3317: LD_EXP 29
3321: PUSH
3322: LD_EXP 28
3326: PUSH
3327: LD_EXP 31
3331: PUSH
3332: LD_EXP 32
3336: PUSH
3337: LD_EXP 26
3341: PUSH
3342: EMPTY
3343: LIST
3344: LIST
3345: LIST
3346: LIST
3347: LIST
3348: LIST
3349: LIST
3350: LIST
3351: DIFF
3352: ST_TO_ADDR
// SaveCharacters ( pom , survivors1 ) ;
3353: LD_VAR 0 3
3357: PPUSH
3358: LD_STRING survivors1
3360: PPUSH
3361: CALL_OW 38
// SaveVariable ( BELKOV_SAVED , belkov_saved ) ;
3365: LD_EXP 22
3369: PPUSH
3370: LD_STRING belkov_saved
3372: PPUSH
3373: CALL_OW 39
// SaveVariable ( STAV_UTOKU , stav_utoku ) ;
3377: LD_EXP 23
3381: PPUSH
3382: LD_STRING stav_utoku
3384: PPUSH
3385: CALL_OW 39
// SaveVariable ( stav_aut , Surplus_vehicles ) ;
3389: LD_EXP 36
3393: PPUSH
3394: LD_STRING Surplus_vehicles
3396: PPUSH
3397: CALL_OW 39
// YouWin ;
3401: CALL_OW 103
// EnableExclamations ;
3405: CALL_OW 473
// exit ;
3409: GO 3411
// end ;
3411: LD_VAR 0 1
3415: RET
// function load_postav ; begin
3416: LD_INT 0
3418: PPUSH
// grishko = NewCharacter ( Grishko ) ;
3419: LD_ADDR_EXP 33
3423: PUSH
3424: LD_STRING Grishko
3426: PPUSH
3427: CALL_OW 25
3431: ST_TO_ADDR
// kur = nacti_osobu ( kurin ) ;
3432: LD_ADDR_EXP 25
3436: PUSH
3437: LD_STRING kurin
3439: PPUSH
3440: CALL 21573 0 1
3444: ST_TO_ADDR
// bel = nacti_osobu ( Belkov ) ;
3445: LD_ADDR_EXP 30
3449: PUSH
3450: LD_STRING Belkov
3452: PPUSH
3453: CALL 21573 0 1
3457: ST_TO_ADDR
// kov = nacti_osobu ( Kovalyuk ) ;
3458: LD_ADDR_EXP 28
3462: PUSH
3463: LD_STRING Kovalyuk
3465: PPUSH
3466: CALL 21573 0 1
3470: ST_TO_ADDR
// bur = nacti_osobu ( Burlak ) ;
3471: LD_ADDR_EXP 27
3475: PUSH
3476: LD_STRING Burlak
3478: PPUSH
3479: CALL 21573 0 1
3483: ST_TO_ADDR
// gny = nacti_osobu ( Gnyevko ) ;
3484: LD_ADDR_EXP 29
3488: PUSH
3489: LD_STRING Gnyevko
3491: PPUSH
3492: CALL 21573 0 1
3496: ST_TO_ADDR
// pop = NewCharacter ( Popov ) ;
3497: LD_ADDR_EXP 26
3501: PUSH
3502: LD_STRING Popov
3504: PPUSH
3505: CALL_OW 25
3509: ST_TO_ADDR
// if CheckCharacterSet ( survivors1 ) then
3510: LD_STRING survivors1
3512: PPUSH
3513: CALL_OW 29
3517: IFFALSE 3532
// other_survivors_mise_2 = CreateCharacterSet ( survivors1 ) ;
3519: LD_ADDR_EXP 69
3523: PUSH
3524: LD_STRING survivors1
3526: PPUSH
3527: CALL_OW 31
3531: ST_TO_ADDR
// if CheckCharacterSet ( amici_bw ) then
3532: LD_STRING amici_bw
3534: PPUSH
3535: CALL_OW 29
3539: IFFALSE 3556
// amici_bw_2 = CreateCharacter ( amici_bw ) else
3541: LD_ADDR_EXP 8
3545: PUSH
3546: LD_STRING amici_bw
3548: PPUSH
3549: CALL_OW 34
3553: ST_TO_ADDR
3554: GO 3563
// amici_bw_2 = [ ] ;
3556: LD_ADDR_EXP 8
3560: PUSH
3561: EMPTY
3562: ST_TO_ADDR
// end ;
3563: LD_VAR 0 1
3567: RET
// function load_promenne ; var default_budovy ; begin
3568: LD_INT 0
3570: PPUSH
3571: PPUSH
// default_budovy = [ [ 0 , 2 , 66 , 97 , 0 ] , [ 2 , 1 , 61 , 83 , 2 ] , [ 6 , 1 , 73 , 90 , 4 ] ] ;
3572: LD_ADDR_VAR 0 2
3576: PUSH
3577: LD_INT 0
3579: PUSH
3580: LD_INT 2
3582: PUSH
3583: LD_INT 66
3585: PUSH
3586: LD_INT 97
3588: PUSH
3589: LD_INT 0
3591: PUSH
3592: EMPTY
3593: LIST
3594: LIST
3595: LIST
3596: LIST
3597: LIST
3598: PUSH
3599: LD_INT 2
3601: PUSH
3602: LD_INT 1
3604: PUSH
3605: LD_INT 61
3607: PUSH
3608: LD_INT 83
3610: PUSH
3611: LD_INT 2
3613: PUSH
3614: EMPTY
3615: LIST
3616: LIST
3617: LIST
3618: LIST
3619: LIST
3620: PUSH
3621: LD_INT 6
3623: PUSH
3624: LD_INT 1
3626: PUSH
3627: LD_INT 73
3629: PUSH
3630: LD_INT 90
3632: PUSH
3633: LD_INT 4
3635: PUSH
3636: EMPTY
3637: LIST
3638: LIST
3639: LIST
3640: LIST
3641: LIST
3642: PUSH
3643: EMPTY
3644: LIST
3645: LIST
3646: LIST
3647: ST_TO_ADDR
// budovy_mise_2 = LoadVariable ( budovy , default_budovy ) ;
3648: LD_ADDR_EXP 6
3652: PUSH
3653: LD_STRING budovy
3655: PPUSH
3656: LD_VAR 0 2
3660: PPUSH
3661: CALL_OW 30
3665: ST_TO_ADDR
// breastworks_east = LoadVariable ( bw_east , 3 ) ;
3666: LD_ADDR_EXP 7
3670: PUSH
3671: LD_STRING bw_east
3673: PPUSH
3674: LD_INT 3
3676: PPUSH
3677: CALL_OW 30
3681: ST_TO_ADDR
// end ;
3682: LD_VAR 0 1
3686: RET
// export function create_scholtze ; var pom ; begin
3687: LD_INT 0
3689: PPUSH
3690: PPUSH
// pom = NewCharacter ( Scholtze ) ;
3691: LD_ADDR_VAR 0 2
3695: PUSH
3696: LD_STRING Scholtze
3698: PPUSH
3699: CALL_OW 25
3703: ST_TO_ADDR
// SetSide ( pom , You2 ) ;
3704: LD_VAR 0 2
3708: PPUSH
3709: LD_EXP 2
3713: PPUSH
3714: CALL_OW 235
// SetClass ( pom , class_scientistic ) ;
3718: LD_VAR 0 2
3722: PPUSH
3723: LD_INT 4
3725: PPUSH
3726: CALL_OW 336
// PlaceUnitXY ( pom , 49 , 5 , true ) ;
3730: LD_VAR 0 2
3734: PPUSH
3735: LD_INT 49
3737: PPUSH
3738: LD_INT 5
3740: PPUSH
3741: LD_INT 1
3743: PPUSH
3744: CALL_OW 48
// result = pom ;
3748: LD_ADDR_VAR 0 1
3752: PUSH
3753: LD_VAR 0 2
3757: ST_TO_ADDR
// end ; end_of_file
3758: LD_VAR 0 1
3762: RET
// var konzervy_delay ; export budovy_mise_2 ; export breastworks_east ; export amici_bw_2 ; every 0 0$0.1 do
3763: GO 3765
3765: DISABLE
// begin konzervy_delay = 0 ;
3766: LD_ADDR_LOC 16
3770: PUSH
3771: LD_INT 0
3773: ST_TO_ADDR
// end ;
3774: END
// export function placni_budovy_z_predesle_mise ; var pom , i ; var ab ; var bw_e ; var vojaci ; var pocet ; begin
3775: LD_INT 0
3777: PPUSH
3778: PPUSH
3779: PPUSH
3780: PPUSH
3781: PPUSH
3782: PPUSH
3783: PPUSH
// uc_side = You ;
3784: LD_ADDR_OWVAR 20
3788: PUSH
3789: LD_EXP 1
3793: ST_TO_ADDR
// bc_kind1 = b_lab_basic ;
3794: LD_ADDR_OWVAR 44
3798: PUSH
3799: LD_INT 9
3801: ST_TO_ADDR
// bc_kind2 = b_lab_basic ;
3802: LD_ADDR_OWVAR 45
3806: PUSH
3807: LD_INT 9
3809: ST_TO_ADDR
// for i in budovy_mise_2 do
3810: LD_ADDR_VAR 0 3
3814: PUSH
3815: LD_EXP 6
3819: PUSH
3820: FOR_IN
3821: IFFALSE 3969
// begin uc_nation = i [ 6 ] ;
3823: LD_ADDR_OWVAR 21
3827: PUSH
3828: LD_VAR 0 3
3832: PUSH
3833: LD_INT 6
3835: ARRAY
3836: ST_TO_ADDR
// bc_type = i [ 1 ] ;
3837: LD_ADDR_OWVAR 42
3841: PUSH
3842: LD_VAR 0 3
3846: PUSH
3847: LD_INT 1
3849: ARRAY
3850: ST_TO_ADDR
// bc_level = i [ 2 ] ;
3851: LD_ADDR_OWVAR 43
3855: PUSH
3856: LD_VAR 0 3
3860: PUSH
3861: LD_INT 2
3863: ARRAY
3864: ST_TO_ADDR
// pom = CreateAndPlaceBuildingXYD ( i [ 3 ] + 30 , i [ 4 ] - 20 , i [ 5 ] ) ;
3865: LD_ADDR_VAR 0 2
3869: PUSH
3870: LD_VAR 0 3
3874: PUSH
3875: LD_INT 3
3877: ARRAY
3878: PUSH
3879: LD_INT 30
3881: PLUS
3882: PPUSH
3883: LD_VAR 0 3
3887: PUSH
3888: LD_INT 4
3890: ARRAY
3891: PUSH
3892: LD_INT 20
3894: MINUS
3895: PPUSH
3896: LD_VAR 0 3
3900: PUSH
3901: LD_INT 5
3903: ARRAY
3904: PPUSH
3905: CALL_OW 47
3909: ST_TO_ADDR
// if bc_type in [ b_depot , b_warehouse ] then
3910: LD_OWVAR 42
3914: PUSH
3915: LD_INT 0
3917: PUSH
3918: LD_INT 1
3920: PUSH
3921: EMPTY
3922: LIST
3923: LIST
3924: IN
3925: IFFALSE 3967
// begin SetResourceType ( GetBase ( pom ) , mat_cans , 100 ) ;
3927: LD_VAR 0 2
3931: PPUSH
3932: CALL_OW 274
3936: PPUSH
3937: LD_INT 1
3939: PPUSH
3940: LD_INT 100
3942: PPUSH
3943: CALL_OW 277
// SetResourceType ( GetBase ( pom ) , mat_oil , 25 ) ;
3947: LD_VAR 0 2
3951: PPUSH
3952: CALL_OW 274
3956: PPUSH
3957: LD_INT 2
3959: PPUSH
3960: LD_INT 25
3962: PPUSH
3963: CALL_OW 277
// end ; end ;
3967: GO 3820
3969: POP
3970: POP
// bw_e = breastworks_east ;
3971: LD_ADDR_VAR 0 5
3975: PUSH
3976: LD_EXP 7
3980: ST_TO_ADDR
// uc_side = Amici ;
3981: LD_ADDR_OWVAR 20
3985: PUSH
3986: LD_EXP 4
3990: ST_TO_ADDR
// uc_nation = nation_american ;
3991: LD_ADDR_OWVAR 21
3995: PUSH
3996: LD_INT 1
3998: ST_TO_ADDR
// bc_type = b_breastwork ;
3999: LD_ADDR_OWVAR 42
4003: PUSH
4004: LD_INT 31
4006: ST_TO_ADDR
// bc_level = level_bw_e [ difficulty ] ;
4007: LD_ADDR_OWVAR 43
4011: PUSH
4012: LD_EXP 9
4016: PUSH
4017: LD_OWVAR 67
4021: ARRAY
4022: ST_TO_ADDR
// if bw_e > 1 then
4023: LD_VAR 0 5
4027: PUSH
4028: LD_INT 1
4030: GREATER
4031: IFFALSE 4046
// CreateAndPlaceBuildingXYD ( 123 , 42 , 1 ) ;
4033: LD_INT 123
4035: PPUSH
4036: LD_INT 42
4038: PPUSH
4039: LD_INT 1
4041: PPUSH
4042: CALL_OW 47
// if bw_e = 1 or bw_e = 3 then
4046: LD_VAR 0 5
4050: PUSH
4051: LD_INT 1
4053: EQUAL
4054: PUSH
4055: LD_VAR 0 5
4059: PUSH
4060: LD_INT 3
4062: EQUAL
4063: OR
4064: IFFALSE 4079
// CreateAndPlaceBuildingXYD ( 120 , 36 , 1 ) ;
4066: LD_INT 120
4068: PPUSH
4069: LD_INT 36
4071: PPUSH
4072: LD_INT 1
4074: PPUSH
4075: CALL_OW 47
// vojaci = amici_bw_2 ;
4079: LD_ADDR_VAR 0 6
4083: PUSH
4084: LD_EXP 8
4088: ST_TO_ADDR
// if bw_e > 0 then
4089: LD_VAR 0 5
4093: PUSH
4094: LD_INT 0
4096: GREATER
4097: IFFALSE 4346
// begin if bw_e = 1 or bw_e = 2 then
4099: LD_VAR 0 5
4103: PUSH
4104: LD_INT 1
4106: EQUAL
4107: PUSH
4108: LD_VAR 0 5
4112: PUSH
4113: LD_INT 2
4115: EQUAL
4116: OR
4117: IFFALSE 4129
// pocet = 1 else
4119: LD_ADDR_VAR 0 7
4123: PUSH
4124: LD_INT 1
4126: ST_TO_ADDR
4127: GO 4137
// pocet = 2 ;
4129: LD_ADDR_VAR 0 7
4133: PUSH
4134: LD_INT 2
4136: ST_TO_ADDR
// vojaci = vojaci ^ get_human ( sex_male , class_soldier , 2 ,  ) ;
4137: LD_ADDR_VAR 0 6
4141: PUSH
4142: LD_VAR 0 6
4146: PUSH
4147: LD_INT 1
4149: PPUSH
4150: LD_INT 1
4152: PPUSH
4153: LD_INT 2
4155: PPUSH
4156: LD_STRING 
4158: PPUSH
4159: CALL 17373 0 4
4163: ADD
4164: ST_TO_ADDR
// vojaci = vojaci ^ get_human ( sex_male , class_soldier , 2 ,  ) ;
4165: LD_ADDR_VAR 0 6
4169: PUSH
4170: LD_VAR 0 6
4174: PUSH
4175: LD_INT 1
4177: PPUSH
4178: LD_INT 1
4180: PPUSH
4181: LD_INT 2
4183: PPUSH
4184: LD_STRING 
4186: PPUSH
4187: CALL 17373 0 4
4191: ADD
4192: ST_TO_ADDR
// pom = FilterUnitsinArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_btype , b_breastwork ] ] ) ;
4193: LD_ADDR_VAR 0 2
4197: PUSH
4198: LD_INT 22
4200: PPUSH
4201: LD_INT 22
4203: PUSH
4204: LD_EXP 4
4208: PUSH
4209: EMPTY
4210: LIST
4211: LIST
4212: PUSH
4213: LD_INT 30
4215: PUSH
4216: LD_INT 31
4218: PUSH
4219: EMPTY
4220: LIST
4221: LIST
4222: PUSH
4223: EMPTY
4224: LIST
4225: LIST
4226: PPUSH
4227: CALL_OW 70
4231: ST_TO_ADDR
// if pocet >= 1 then
4232: LD_VAR 0 7
4236: PUSH
4237: LD_INT 1
4239: GREATEREQUAL
4240: IFFALSE 4289
// begin PlaceUnitXYR ( vojaci [ 1 ] , 129 , 39 , 5 , false ) ;
4242: LD_VAR 0 6
4246: PUSH
4247: LD_INT 1
4249: ARRAY
4250: PPUSH
4251: LD_INT 129
4253: PPUSH
4254: LD_INT 39
4256: PPUSH
4257: LD_INT 5
4259: PPUSH
4260: LD_INT 0
4262: PPUSH
4263: CALL_OW 50
// ComEnterUnit ( vojaci [ 1 ] , pom [ 1 ] ) ;
4267: LD_VAR 0 6
4271: PUSH
4272: LD_INT 1
4274: ARRAY
4275: PPUSH
4276: LD_VAR 0 2
4280: PUSH
4281: LD_INT 1
4283: ARRAY
4284: PPUSH
4285: CALL_OW 120
// end ; if pocet = 2 then
4289: LD_VAR 0 7
4293: PUSH
4294: LD_INT 2
4296: EQUAL
4297: IFFALSE 4346
// begin PlaceUnitXYR ( vojaci [ 2 ] , 129 , 39 , 5 , false ) ;
4299: LD_VAR 0 6
4303: PUSH
4304: LD_INT 2
4306: ARRAY
4307: PPUSH
4308: LD_INT 129
4310: PPUSH
4311: LD_INT 39
4313: PPUSH
4314: LD_INT 5
4316: PPUSH
4317: LD_INT 0
4319: PPUSH
4320: CALL_OW 50
// ComEnterUnit ( vojaci [ 2 ] , pom [ 2 ] ) ;
4324: LD_VAR 0 6
4328: PUSH
4329: LD_INT 2
4331: ARRAY
4332: PPUSH
4333: LD_VAR 0 2
4337: PUSH
4338: LD_INT 2
4340: ARRAY
4341: PPUSH
4342: CALL_OW 120
// end ; end ; end ;
4346: LD_VAR 0 1
4350: RET
// export function vyber_characteru ; var pom ; var units_na_vyber ; var i ; var pocet ; var vyber ; var osurviv ; begin
4351: LD_INT 0
4353: PPUSH
4354: PPUSH
4355: PPUSH
4356: PPUSH
4357: PPUSH
4358: PPUSH
4359: PPUSH
// uc_side = You ;
4360: LD_ADDR_OWVAR 20
4364: PUSH
4365: LD_EXP 1
4369: ST_TO_ADDR
// uc_nation = nation_russian ;
4370: LD_ADDR_OWVAR 21
4374: PUSH
4375: LD_INT 3
4377: ST_TO_ADDR
// pocet = 3 ;
4378: LD_ADDR_VAR 0 5
4382: PUSH
4383: LD_INT 3
4385: ST_TO_ADDR
// units_na_vyber = [ sel_not_changeable , sel_hired , sel_dont_change_class , bur ] ;
4386: LD_ADDR_VAR 0 3
4390: PUSH
4391: LD_INT -4
4393: PUSH
4394: LD_INT -1
4396: PUSH
4397: LD_INT -6
4399: PUSH
4400: LD_EXP 27
4404: PUSH
4405: EMPTY
4406: LIST
4407: LIST
4408: LIST
4409: LIST
4410: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ [ sel_change_class ] ;
4411: LD_ADDR_VAR 0 3
4415: PUSH
4416: LD_VAR 0 3
4420: PUSH
4421: LD_INT -5
4423: PUSH
4424: EMPTY
4425: LIST
4426: ADD
4427: ST_TO_ADDR
// if IsOK ( gny ) then
4428: LD_EXP 29
4432: PPUSH
4433: CALL_OW 302
4437: IFFALSE 4471
// begin SetSide ( gny , You ) ;
4439: LD_EXP 29
4443: PPUSH
4444: LD_EXP 1
4448: PPUSH
4449: CALL_OW 235
// units_na_vyber = units_na_vyber ^ gny end else
4453: LD_ADDR_VAR 0 3
4457: PUSH
4458: LD_VAR 0 3
4462: PUSH
4463: LD_EXP 29
4467: ADD
4468: ST_TO_ADDR
4469: GO 4485
// pocet = pocet + 1 ;
4471: LD_ADDR_VAR 0 5
4475: PUSH
4476: LD_VAR 0 5
4480: PUSH
4481: LD_INT 1
4483: PLUS
4484: ST_TO_ADDR
// if IsOK ( kov ) then
4485: LD_EXP 28
4489: PPUSH
4490: CALL_OW 302
4494: IFFALSE 4528
// begin SetSide ( kov , You ) ;
4496: LD_EXP 28
4500: PPUSH
4501: LD_EXP 1
4505: PPUSH
4506: CALL_OW 235
// units_na_vyber = units_na_vyber ^ kov end else
4510: LD_ADDR_VAR 0 3
4514: PUSH
4515: LD_VAR 0 3
4519: PUSH
4520: LD_EXP 28
4524: ADD
4525: ST_TO_ADDR
4526: GO 4542
// pocet = pocet + 1 ;
4528: LD_ADDR_VAR 0 5
4532: PUSH
4533: LD_VAR 0 5
4537: PUSH
4538: LD_INT 1
4540: PLUS
4541: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ [ sel_not_hired , sel_changeable , sel_change_class ] ;
4542: LD_ADDR_VAR 0 3
4546: PUSH
4547: LD_VAR 0 3
4551: PUSH
4552: LD_INT -2
4554: PUSH
4555: LD_INT -3
4557: PUSH
4558: LD_INT -5
4560: PUSH
4561: EMPTY
4562: LIST
4563: LIST
4564: LIST
4565: ADD
4566: ST_TO_ADDR
// if IsOK ( bel ) then
4567: LD_EXP 30
4571: PPUSH
4572: CALL_OW 302
4576: IFFALSE 4608
// begin SetSide ( bel , You ) ;
4578: LD_EXP 30
4582: PPUSH
4583: LD_EXP 1
4587: PPUSH
4588: CALL_OW 235
// units_na_vyber = units_na_vyber ^ bel ;
4592: LD_ADDR_VAR 0 3
4596: PUSH
4597: LD_VAR 0 3
4601: PUSH
4602: LD_EXP 30
4606: ADD
4607: ST_TO_ADDR
// end ; osurviv = other_survivors_mise_2 ;
4608: LD_ADDR_VAR 0 7
4612: PUSH
4613: LD_EXP 69
4617: ST_TO_ADDR
// for i in osurviv do
4618: LD_ADDR_VAR 0 4
4622: PUSH
4623: LD_VAR 0 7
4627: PUSH
4628: FOR_IN
4629: IFFALSE 4647
// SetSide ( i , You ) ;
4631: LD_VAR 0 4
4635: PPUSH
4636: LD_EXP 1
4640: PPUSH
4641: CALL_OW 235
4645: GO 4628
4647: POP
4648: POP
// units_na_vyber = units_na_vyber ^ osurviv ;
4649: LD_ADDR_VAR 0 3
4653: PUSH
4654: LD_VAR 0 3
4658: PUSH
4659: LD_VAR 0 7
4663: ADD
4664: ST_TO_ADDR
// uc_side = You ;
4665: LD_ADDR_OWVAR 20
4669: PUSH
4670: LD_EXP 1
4674: ST_TO_ADDR
// uc_nation = nation_russian ;
4675: LD_ADDR_OWVAR 21
4679: PUSH
4680: LD_INT 3
4682: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_soldier , 2 ,  ) ;
4683: LD_ADDR_VAR 0 3
4687: PUSH
4688: LD_VAR 0 3
4692: PUSH
4693: CALL 17338 0 0
4697: PPUSH
4698: LD_INT 1
4700: PPUSH
4701: LD_INT 2
4703: PPUSH
4704: LD_STRING 
4706: PPUSH
4707: CALL 17373 0 4
4711: ADD
4712: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( sex_female , class_soldier , 3 ,  ) ;
4713: LD_ADDR_VAR 0 3
4717: PUSH
4718: LD_VAR 0 3
4722: PUSH
4723: LD_INT 2
4725: PPUSH
4726: LD_INT 1
4728: PPUSH
4729: LD_INT 3
4731: PPUSH
4732: LD_STRING 
4734: PPUSH
4735: CALL 17373 0 4
4739: ADD
4740: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_engineer , 2 ,  ) ;
4741: LD_ADDR_VAR 0 3
4745: PUSH
4746: LD_VAR 0 3
4750: PUSH
4751: CALL 17338 0 0
4755: PPUSH
4756: LD_INT 2
4758: PPUSH
4759: LD_INT 2
4761: PPUSH
4762: LD_STRING 
4764: PPUSH
4765: CALL 17373 0 4
4769: ADD
4770: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_scientistic , 2 ,  ) ;
4771: LD_ADDR_VAR 0 3
4775: PUSH
4776: LD_VAR 0 3
4780: PUSH
4781: CALL 17338 0 0
4785: PPUSH
4786: LD_INT 4
4788: PPUSH
4789: LD_INT 2
4791: PPUSH
4792: LD_STRING 
4794: PPUSH
4795: CALL 17373 0 4
4799: ADD
4800: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_mechanic , 2 ,  ) ;
4801: LD_ADDR_VAR 0 3
4805: PUSH
4806: LD_VAR 0 3
4810: PUSH
4811: CALL 17338 0 0
4815: PPUSH
4816: LD_INT 3
4818: PPUSH
4819: LD_INT 2
4821: PPUSH
4822: LD_STRING 
4824: PPUSH
4825: CALL 17373 0 4
4829: ADD
4830: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_engineer , 2 ,  ) ;
4831: LD_ADDR_VAR 0 3
4835: PUSH
4836: LD_VAR 0 3
4840: PUSH
4841: CALL 17338 0 0
4845: PPUSH
4846: LD_INT 2
4848: PPUSH
4849: LD_INT 2
4851: PPUSH
4852: LD_STRING 
4854: PPUSH
4855: CALL 17373 0 4
4859: ADD
4860: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_scientistic , 2 ,  ) ;
4861: LD_ADDR_VAR 0 3
4865: PUSH
4866: LD_VAR 0 3
4870: PUSH
4871: CALL 17338 0 0
4875: PPUSH
4876: LD_INT 4
4878: PPUSH
4879: LD_INT 2
4881: PPUSH
4882: LD_STRING 
4884: PPUSH
4885: CALL 17373 0 4
4889: ADD
4890: ST_TO_ADDR
// units_na_vyber = units_na_vyber ^ get_human ( get_sex , class_mechanic , 2 ,  ) ;
4891: LD_ADDR_VAR 0 3
4895: PUSH
4896: LD_VAR 0 3
4900: PUSH
4901: CALL 17338 0 0
4905: PPUSH
4906: LD_INT 3
4908: PPUSH
4909: LD_INT 2
4911: PPUSH
4912: LD_STRING 
4914: PPUSH
4915: CALL 17373 0 4
4919: ADD
4920: ST_TO_ADDR
// pom = CharacterSelection ( Vyber si peopliky , pocet , pocet , units_na_vyber , [ [ class_engineer , 1 ] , [ class_scientistic , 1 ] , [ class_mechanic , 0 ] , [ class_soldier , 0 ] ] ) ;
4921: LD_ADDR_VAR 0 2
4925: PUSH
4926: LD_STRING Vyber si peopliky
4928: PPUSH
4929: LD_VAR 0 5
4933: PPUSH
4934: LD_VAR 0 5
4938: PPUSH
4939: LD_VAR 0 3
4943: PPUSH
4944: LD_INT 2
4946: PUSH
4947: LD_INT 1
4949: PUSH
4950: EMPTY
4951: LIST
4952: LIST
4953: PUSH
4954: LD_INT 4
4956: PUSH
4957: LD_INT 1
4959: PUSH
4960: EMPTY
4961: LIST
4962: LIST
4963: PUSH
4964: LD_INT 3
4966: PUSH
4967: LD_INT 0
4969: PUSH
4970: EMPTY
4971: LIST
4972: LIST
4973: PUSH
4974: LD_INT 1
4976: PUSH
4977: LD_INT 0
4979: PUSH
4980: EMPTY
4981: LIST
4982: LIST
4983: PUSH
4984: EMPTY
4985: LIST
4986: LIST
4987: LIST
4988: LIST
4989: PPUSH
4990: CALL_OW 42
4994: ST_TO_ADDR
// vyber = [ bur ] ;
4995: LD_ADDR_VAR 0 6
4999: PUSH
5000: LD_EXP 27
5004: PUSH
5005: EMPTY
5006: LIST
5007: ST_TO_ADDR
// if IsOK ( gny ) then
5008: LD_EXP 29
5012: PPUSH
5013: CALL_OW 302
5017: IFFALSE 5035
// vyber = vyber ^ gny ;
5019: LD_ADDR_VAR 0 6
5023: PUSH
5024: LD_VAR 0 6
5028: PUSH
5029: LD_EXP 29
5033: ADD
5034: ST_TO_ADDR
// if IsOK ( kov ) then
5035: LD_EXP 28
5039: PPUSH
5040: CALL_OW 302
5044: IFFALSE 5062
// vyber = vyber ^ kov ;
5046: LD_ADDR_VAR 0 6
5050: PUSH
5051: LD_VAR 0 6
5055: PUSH
5056: LD_EXP 28
5060: ADD
5061: ST_TO_ADDR
// vyber = vyber ^ pom ;
5062: LD_ADDR_VAR 0 6
5066: PUSH
5067: LD_VAR 0 6
5071: PUSH
5072: LD_VAR 0 2
5076: ADD
5077: ST_TO_ADDR
// manage_zbytek ( osurviv diff vyber ) ;
5078: LD_VAR 0 7
5082: PUSH
5083: LD_VAR 0 6
5087: DIFF
5088: PPUSH
5089: CALL 5323 0 1
// result := vyber ;
5093: LD_ADDR_VAR 0 1
5097: PUSH
5098: LD_VAR 0 6
5102: ST_TO_ADDR
// end ;
5103: LD_VAR 0 1
5107: RET
// export function placni_unity ( unity ) ; var i ; begin
5108: LD_INT 0
5110: PPUSH
5111: PPUSH
// for i in unity do
5112: LD_ADDR_VAR 0 3
5116: PUSH
5117: LD_VAR 0 1
5121: PUSH
5122: FOR_IN
5123: IFFALSE 5162
// begin SetSide ( i , You ) ;
5125: LD_VAR 0 3
5129: PPUSH
5130: LD_EXP 1
5134: PPUSH
5135: CALL_OW 235
// PlaceUnitXYR ( i , 99 , 73 , 5 , false ) ;
5139: LD_VAR 0 3
5143: PPUSH
5144: LD_INT 99
5146: PPUSH
5147: LD_INT 73
5149: PPUSH
5150: LD_INT 5
5152: PPUSH
5153: LD_INT 0
5155: PPUSH
5156: CALL_OW 50
// end ;
5160: GO 5122
5162: POP
5163: POP
// wait ( 0 0$0.5 ) ;
5164: LD_INT 18
5166: PPUSH
5167: CALL_OW 67
// SaveForQuickRestart ;
5171: CALL_OW 22
// end ;
5175: LD_VAR 0 2
5179: RET
// every 0 0$10 trigger stav_omikron < 3 do
5180: LD_EXP 37
5184: PUSH
5185: LD_INT 3
5187: LESS
5188: IFFALSE 5257
5190: GO 5192
5192: DISABLE
// begin wait ( Rand ( 50 , 2 2$00 ) ) ;
5193: LD_INT 50
5195: PPUSH
5196: LD_INT 4200
5198: PPUSH
5199: CALL_OW 12
5203: PPUSH
5204: CALL_OW 67
// wait ( konzervy_delay * 0 0$5 ) ;
5208: LD_LOC 16
5212: PUSH
5213: LD_INT 175
5215: MUL
5216: PPUSH
5217: CALL_OW 67
// konzervy_delay = konzervy_delay + 1 ;
5221: LD_ADDR_LOC 16
5225: PUSH
5226: LD_LOC 16
5230: PUSH
5231: LD_INT 1
5233: PLUS
5234: ST_TO_ADDR
// CreateCratesArea ( Rand ( 3 , 5 ) , RU2_bedny , true ) ;
5235: LD_INT 3
5237: PPUSH
5238: LD_INT 5
5240: PPUSH
5241: CALL_OW 12
5245: PPUSH
5246: LD_INT 7
5248: PPUSH
5249: LD_INT 1
5251: PPUSH
5252: CALL_OW 55
// enable ;
5256: ENABLE
// end ;
5257: END
// every 0 0$30 do
5258: GO 5260
5260: DISABLE
// begin CreateCratesArea ( Rand ( 3 , 5 ) , RU2_bedny , true ) ;
5261: LD_INT 3
5263: PPUSH
5264: LD_INT 5
5266: PPUSH
5267: CALL_OW 12
5271: PPUSH
5272: LD_INT 7
5274: PPUSH
5275: LD_INT 1
5277: PPUSH
5278: CALL_OW 55
// end ;
5282: END
// every 1 1$20 do
5283: GO 5285
5285: DISABLE
// begin wait ( Rand ( 1 , 0 0$40 ) ) ;
5286: LD_INT 1
5288: PPUSH
5289: LD_INT 1400
5291: PPUSH
5292: CALL_OW 12
5296: PPUSH
5297: CALL_OW 67
// CreateCratesArea ( Rand ( 1 , 4 ) , konzervy_all , true ) ;
5301: LD_INT 1
5303: PPUSH
5304: LD_INT 4
5306: PPUSH
5307: CALL_OW 12
5311: PPUSH
5312: LD_INT 25
5314: PPUSH
5315: LD_INT 1
5317: PPUSH
5318: CALL_OW 55
// end ;
5322: END
// function manage_zbytek ( lidi ) ; var i ; begin
5323: LD_INT 0
5325: PPUSH
5326: PPUSH
// for i in lidi do
5327: LD_ADDR_VAR 0 3
5331: PUSH
5332: LD_VAR 0 1
5336: PUSH
5337: FOR_IN
5338: IFFALSE 5377
// begin SetSide ( i , You2 ) ;
5340: LD_VAR 0 3
5344: PPUSH
5345: LD_EXP 2
5349: PPUSH
5350: CALL_OW 235
// PlaceUnitXYR ( i , 144 , 79 , 3 , false ) ;
5354: LD_VAR 0 3
5358: PPUSH
5359: LD_INT 144
5361: PPUSH
5362: LD_INT 79
5364: PPUSH
5365: LD_INT 3
5367: PPUSH
5368: LD_INT 0
5370: PPUSH
5371: CALL_OW 50
// end ;
5375: GO 5337
5377: POP
5378: POP
// ComEnterUnit ( lidi , RU1_dep ) ;
5379: LD_VAR 0 1
5383: PPUSH
5384: LD_INT 1
5386: PPUSH
5387: CALL_OW 120
// end ; end_of_file
5391: LD_VAR 0 2
5395: RET
// export level_bw_e ; export schol_find_amikama ; export levely_amici ; export posily1 ; export posily11 ; export posily2 ; export posily3 ; export posily4 ; export utok_na_omikron ; export levely_ruske_posily ; export levely_am_budov ; export muze_projit_posil ; export muze_prezit_posil ; export BELKOV_SAVED ; export STAV_UTOKU ; export function set_difficulty ; begin
5396: LD_INT 0
5398: PPUSH
// BELKOV_SAVED = LoadVariable ( belkov_saved , 0 ) ;
5399: LD_ADDR_EXP 22
5403: PUSH
5404: LD_STRING belkov_saved
5406: PPUSH
5407: LD_INT 0
5409: PPUSH
5410: CALL_OW 30
5414: ST_TO_ADDR
// STAV_UTOKU = LoadVariable ( utok_stav , 3 ) ;
5415: LD_ADDR_EXP 23
5419: PUSH
5420: LD_STRING utok_stav
5422: PPUSH
5423: LD_INT 3
5425: PPUSH
5426: CALL_OW 30
5430: ST_TO_ADDR
// level_bw_e = [ 2 , 3 , 4 ] ;
5431: LD_ADDR_EXP 9
5435: PUSH
5436: LD_INT 2
5438: PUSH
5439: LD_INT 3
5441: PUSH
5442: LD_INT 4
5444: PUSH
5445: EMPTY
5446: LIST
5447: LIST
5448: LIST
5449: ST_TO_ADDR
// schol_find_amikama = [ 11 11$0 , 9 9$0 , 7 7$0 ] ;
5450: LD_ADDR_EXP 10
5454: PUSH
5455: LD_INT 23100
5457: PUSH
5458: LD_INT 18900
5460: PUSH
5461: LD_INT 14700
5463: PUSH
5464: EMPTY
5465: LIST
5466: LIST
5467: LIST
5468: ST_TO_ADDR
// levely_amici = [ 2 , 3 , 4 ] ;
5469: LD_ADDR_EXP 11
5473: PUSH
5474: LD_INT 2
5476: PUSH
5477: LD_INT 3
5479: PUSH
5480: LD_INT 4
5482: PUSH
5483: EMPTY
5484: LIST
5485: LIST
5486: LIST
5487: ST_TO_ADDR
// posily1 = [ 13 13$00 , 11 11$00 , 10 10$00 ] ;
5488: LD_ADDR_EXP 12
5492: PUSH
5493: LD_INT 27300
5495: PUSH
5496: LD_INT 23100
5498: PUSH
5499: LD_INT 21000
5501: PUSH
5502: EMPTY
5503: LIST
5504: LIST
5505: LIST
5506: ST_TO_ADDR
// posily11 = [ 5 5$0 , 4 4$0 , 3 3$0 ] ;
5507: LD_ADDR_EXP 13
5511: PUSH
5512: LD_INT 10500
5514: PUSH
5515: LD_INT 8400
5517: PUSH
5518: LD_INT 6300
5520: PUSH
5521: EMPTY
5522: LIST
5523: LIST
5524: LIST
5525: ST_TO_ADDR
// posily2 = [ 10 10$0 , 8 8$0 , 5 5$0 ] ;
5526: LD_ADDR_EXP 14
5530: PUSH
5531: LD_INT 21000
5533: PUSH
5534: LD_INT 16800
5536: PUSH
5537: LD_INT 10500
5539: PUSH
5540: EMPTY
5541: LIST
5542: LIST
5543: LIST
5544: ST_TO_ADDR
// posily3 = [ 11 11$0 , 8 8$30 , 5 5$0 ] ;
5545: LD_ADDR_EXP 15
5549: PUSH
5550: LD_INT 23100
5552: PUSH
5553: LD_INT 17850
5555: PUSH
5556: LD_INT 10500
5558: PUSH
5559: EMPTY
5560: LIST
5561: LIST
5562: LIST
5563: ST_TO_ADDR
// posily4 = [ 8 8$0 , 7 7$0 , 5 5$0 ] ;
5564: LD_ADDR_EXP 16
5568: PUSH
5569: LD_INT 16800
5571: PUSH
5572: LD_INT 14700
5574: PUSH
5575: LD_INT 10500
5577: PUSH
5578: EMPTY
5579: LIST
5580: LIST
5581: LIST
5582: ST_TO_ADDR
// utok_na_omikron = [ 55 55$0 , 45 45$0 , 35 35$0 ] [ difficulty ] ;
5583: LD_ADDR_EXP 17
5587: PUSH
5588: LD_INT 115500
5590: PUSH
5591: LD_INT 94500
5593: PUSH
5594: LD_INT 73500
5596: PUSH
5597: EMPTY
5598: LIST
5599: LIST
5600: LIST
5601: PUSH
5602: LD_OWVAR 67
5606: ARRAY
5607: ST_TO_ADDR
// levely_ruske_posily = [ 4 , 3 , 2 ] ;
5608: LD_ADDR_EXP 18
5612: PUSH
5613: LD_INT 4
5615: PUSH
5616: LD_INT 3
5618: PUSH
5619: LD_INT 2
5621: PUSH
5622: EMPTY
5623: LIST
5624: LIST
5625: LIST
5626: ST_TO_ADDR
// levely_am_budov = [ 0 , 1 , 2 ] ;
5627: LD_ADDR_EXP 19
5631: PUSH
5632: LD_INT 0
5634: PUSH
5635: LD_INT 1
5637: PUSH
5638: LD_INT 2
5640: PUSH
5641: EMPTY
5642: LIST
5643: LIST
5644: LIST
5645: ST_TO_ADDR
// muze_projit_posil = [ 8 , 8 , 6 ] ;
5646: LD_ADDR_EXP 20
5650: PUSH
5651: LD_INT 8
5653: PUSH
5654: LD_INT 8
5656: PUSH
5657: LD_INT 6
5659: PUSH
5660: EMPTY
5661: LIST
5662: LIST
5663: LIST
5664: ST_TO_ADDR
// muze_prezit_posil = [ 2 , 5 , 100 ] ;
5665: LD_ADDR_EXP 21
5669: PUSH
5670: LD_INT 2
5672: PUSH
5673: LD_INT 5
5675: PUSH
5676: LD_INT 100
5678: PUSH
5679: EMPTY
5680: LIST
5681: LIST
5682: LIST
5683: ST_TO_ADDR
// cas = [ 0 , : , 0 ] ;
5684: LD_ADDR_EXP 24
5688: PUSH
5689: LD_INT 0
5691: PUSH
5692: LD_STRING :
5694: PUSH
5695: LD_INT 0
5697: PUSH
5698: EMPTY
5699: LIST
5700: LIST
5701: LIST
5702: ST_TO_ADDR
// end ;
5703: LD_VAR 0 1
5707: RET
// export cas ; every 0 0$10 do var pom ;
5708: GO 5710
5710: DISABLE
5711: LD_INT 0
5713: PPUSH
// begin if cas [ 3 ] + 10 = 60 then
5714: LD_EXP 24
5718: PUSH
5719: LD_INT 3
5721: ARRAY
5722: PUSH
5723: LD_INT 10
5725: PLUS
5726: PUSH
5727: LD_INT 60
5729: EQUAL
5730: IFFALSE 5766
// cas = cas [ 1 ] + 1 ^ cas [ 2 ] ^ 0 else
5732: LD_ADDR_EXP 24
5736: PUSH
5737: LD_EXP 24
5741: PUSH
5742: LD_INT 1
5744: ARRAY
5745: PUSH
5746: LD_INT 1
5748: PLUS
5749: PUSH
5750: LD_EXP 24
5754: PUSH
5755: LD_INT 2
5757: ARRAY
5758: ADD
5759: PUSH
5760: LD_INT 0
5762: ADD
5763: ST_TO_ADDR
5764: GO 5804
// cas = cas [ 1 ] ^ cas [ 2 ] ^ cas [ 3 ] + 10 ;
5766: LD_ADDR_EXP 24
5770: PUSH
5771: LD_EXP 24
5775: PUSH
5776: LD_INT 1
5778: ARRAY
5779: PUSH
5780: LD_EXP 24
5784: PUSH
5785: LD_INT 2
5787: ARRAY
5788: ADD
5789: PUSH
5790: LD_EXP 24
5794: PUSH
5795: LD_INT 3
5797: ARRAY
5798: PUSH
5799: LD_INT 10
5801: PLUS
5802: ADD
5803: ST_TO_ADDR
// debug_strings = [ cas ] ;
5804: LD_ADDR_OWVAR 48
5808: PUSH
5809: LD_EXP 24
5813: PUSH
5814: EMPTY
5815: LIST
5816: ST_TO_ADDR
// enable ;
5817: ENABLE
// end ;
5818: PPOPN 1
5820: END
// export function pojmenovani_zakladen ; var pom ; begin
5821: LD_INT 0
5823: PPUSH
5824: PPUSH
// SetBName ( RU1_dep , kirov ) ;
5825: LD_INT 1
5827: PPUSH
5828: LD_STRING kirov
5830: PPUSH
5831: CALL_OW 500
// pom = FilterUnitsInArea ( Ru2_base , [ [ f_side , You ] , [ f_btype , b_depot ] ] ) ;
5835: LD_ADDR_VAR 0 2
5839: PUSH
5840: LD_INT 2
5842: PPUSH
5843: LD_INT 22
5845: PUSH
5846: LD_EXP 1
5850: PUSH
5851: EMPTY
5852: LIST
5853: LIST
5854: PUSH
5855: LD_INT 30
5857: PUSH
5858: LD_INT 0
5860: PUSH
5861: EMPTY
5862: LIST
5863: LIST
5864: PUSH
5865: EMPTY
5866: LIST
5867: LIST
5868: PPUSH
5869: CALL_OW 70
5873: ST_TO_ADDR
// if pom > 0 then
5874: LD_VAR 0 2
5878: PUSH
5879: LD_INT 0
5881: GREATER
5882: IFFALSE 5900
// SetBName ( pom [ 1 ] , beria ) ;
5884: LD_VAR 0 2
5888: PUSH
5889: LD_INT 1
5891: ARRAY
5892: PPUSH
5893: LD_STRING beria
5895: PPUSH
5896: CALL_OW 500
// SetBName ( Am_dep , omikron ) ;
5900: LD_INT 12
5902: PPUSH
5903: LD_STRING omikron
5905: PPUSH
5906: CALL_OW 500
// end ;
5910: LD_VAR 0 1
5914: RET
// export function pojmenovani_kaganoviche ( base ) ; begin
5915: LD_INT 0
5917: PPUSH
// SetBName ( base , kagan ) ;
5918: LD_VAR 0 1
5922: PPUSH
5923: LD_STRING kagan
5925: PPUSH
5926: CALL_OW 500
// end ; end_of_file
5930: LD_VAR 0 2
5934: RET
// export kur ; export pop ; export bur ; export kov ; export gny ; export bel ; export schol ; export schol2 ; export grishko ; export Rusi_enter ; export scholtze_saved ; export stav_aut ; export stav_omikron ; export RU_videl_oil ; var counter_zapnut ; export setkani_om ; var R_comp ; export Rusi_utekli ; export Rusi_save ; var dialog_probehnul ; var qrefuel_over ; export kecy_scholtze_nalezen ; export konec_counteru ; export stav_aut_new ; export postavenych_aut ; var TTime ; export special_time ; every 0 0$0.1 do var i ;
5935: GO 5937
5937: DISABLE
5938: LD_INT 0
5940: PPUSH
// begin schol = 0 ;
5941: LD_ADDR_EXP 31
5945: PUSH
5946: LD_INT 0
5948: ST_TO_ADDR
// scholtze_saved = false ;
5949: LD_ADDR_EXP 35
5953: PUSH
5954: LD_INT 0
5956: ST_TO_ADDR
// stav_omikron = 0 ;
5957: LD_ADDR_EXP 37
5961: PUSH
5962: LD_INT 0
5964: ST_TO_ADDR
// stav_aut = 0 ;
5965: LD_ADDR_EXP 36
5969: PUSH
5970: LD_INT 0
5972: ST_TO_ADDR
// RU_videl_oil = false ;
5973: LD_ADDR_EXP 38
5977: PUSH
5978: LD_INT 0
5980: ST_TO_ADDR
// counter_zapnut = false ;
5981: LD_ADDR_LOC 17
5985: PUSH
5986: LD_INT 0
5988: ST_TO_ADDR
// setkani_om = false ;
5989: LD_ADDR_EXP 39
5993: PUSH
5994: LD_INT 0
5996: ST_TO_ADDR
// R_comp = [ ] ;
5997: LD_ADDR_LOC 18
6001: PUSH
6002: EMPTY
6003: ST_TO_ADDR
// Rusi_utekli = [ ] ;
6004: LD_ADDR_EXP 40
6008: PUSH
6009: EMPTY
6010: ST_TO_ADDR
// Rusi_save = [ ] ;
6011: LD_ADDR_EXP 41
6015: PUSH
6016: EMPTY
6017: ST_TO_ADDR
// dialog_probehnul = false ;
6018: LD_ADDR_LOC 19
6022: PUSH
6023: LD_INT 0
6025: ST_TO_ADDR
// qrefuel_over = false ;
6026: LD_ADDR_LOC 20
6030: PUSH
6031: LD_INT 0
6033: ST_TO_ADDR
// kecy_scholtze_nalezen = false ;
6034: LD_ADDR_EXP 42
6038: PUSH
6039: LD_INT 0
6041: ST_TO_ADDR
// postavenych_aut = 0 ;
6042: LD_ADDR_EXP 45
6046: PUSH
6047: LD_INT 0
6049: ST_TO_ADDR
// TTime = 0 ;
6050: LD_ADDR_LOC 21
6054: PUSH
6055: LD_INT 0
6057: ST_TO_ADDR
// konec_counteru = false ;
6058: LD_ADDR_EXP 43
6062: PUSH
6063: LD_INT 0
6065: ST_TO_ADDR
// stav_aut_new = 0 ;
6066: LD_ADDR_EXP 44
6070: PUSH
6071: LD_INT 0
6073: ST_TO_ADDR
// special_time = false ;
6074: LD_ADDR_EXP 46
6078: PUSH
6079: LD_INT 0
6081: ST_TO_ADDR
// for i in [ 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 , 51 , 52 , 53 , 200 , 201 , 202 , 203 ] do
6082: LD_ADDR_VAR 0 1
6086: PUSH
6087: LD_INT 1
6089: PUSH
6090: LD_INT 2
6092: PUSH
6093: LD_INT 3
6095: PUSH
6096: LD_INT 6
6098: PUSH
6099: LD_INT 7
6101: PUSH
6102: LD_INT 8
6104: PUSH
6105: LD_INT 9
6107: PUSH
6108: LD_INT 10
6110: PUSH
6111: LD_INT 51
6113: PUSH
6114: LD_INT 52
6116: PUSH
6117: LD_INT 53
6119: PUSH
6120: LD_INT 200
6122: PUSH
6123: LD_INT 201
6125: PUSH
6126: LD_INT 202
6128: PUSH
6129: LD_INT 203
6131: PUSH
6132: EMPTY
6133: LIST
6134: LIST
6135: LIST
6136: LIST
6137: LIST
6138: LIST
6139: LIST
6140: LIST
6141: LIST
6142: LIST
6143: LIST
6144: LIST
6145: LIST
6146: LIST
6147: LIST
6148: PUSH
6149: FOR_IN
6150: IFFALSE 6159
// disable ( i ) ;
6152: LD_VAR 0 1
6156: DISABLE_MARKED
6157: GO 6149
6159: POP
6160: POP
// end ;
6161: PPOPN 1
6163: END
// export function uklid_rusu ; begin
6164: LD_INT 0
6166: PPUSH
// ComEnterUnit ( RU1_vb1 , RU1_bu1 ) ;
6167: LD_INT 42
6169: PPUSH
6170: LD_INT 3
6172: PPUSH
6173: CALL_OW 120
// ComEnterUnit ( RU1_vb2 , RU1_bu2 ) ;
6177: LD_INT 43
6179: PPUSH
6180: LD_INT 4
6182: PPUSH
6183: CALL_OW 120
// ComEnterUnit ( RU1_sci1 , RU1_lab2 ) ;
6187: LD_INT 44
6189: PPUSH
6190: LD_INT 16
6192: PPUSH
6193: CALL_OW 120
// ComEnterUnit ( RU1_sci2 , RU1_lab2 ) ;
6197: LD_INT 45
6199: PPUSH
6200: LD_INT 16
6202: PPUSH
6203: CALL_OW 120
// ComEnterUnit ( RU1_sci3 , RU1_lab2 ) ;
6207: LD_INT 46
6209: PPUSH
6210: LD_INT 16
6212: PPUSH
6213: CALL_OW 120
// ComEnterUnit ( RU1_sci4 , RU1_lab1 ) ;
6217: LD_INT 47
6219: PPUSH
6220: LD_INT 6
6222: PPUSH
6223: CALL_OW 120
// ComEnterUnit ( RU1_sci5 , RU1_lab1 ) ;
6227: LD_INT 48
6229: PPUSH
6230: LD_INT 6
6232: PPUSH
6233: CALL_OW 120
// ComEnterUnit ( RU1_me1 , RU1_fac ) ;
6237: LD_INT 49
6239: PPUSH
6240: LD_INT 5
6242: PPUSH
6243: CALL_OW 120
// ComEnterUnit ( RU1_me2 , RU1_fac ) ;
6247: LD_INT 50
6249: PPUSH
6250: LD_INT 5
6252: PPUSH
6253: CALL_OW 120
// ComEnterUnit ( RU1_me3 , RU1_fac ) ;
6257: LD_INT 51
6259: PPUSH
6260: LD_INT 5
6262: PPUSH
6263: CALL_OW 120
// ComEnterUnit ( pop , RU1_bar1 ) ;
6267: LD_EXP 26
6271: PPUSH
6272: LD_INT 2
6274: PPUSH
6275: CALL_OW 120
// ComEnterUnit ( RU1_sol1 , RU1_bar1 ) ;
6279: LD_INT 52
6281: PPUSH
6282: LD_INT 2
6284: PPUSH
6285: CALL_OW 120
// ComEnterUnit ( RU1_sol2 , RU1_bar1 ) ;
6289: LD_INT 53
6291: PPUSH
6292: LD_INT 2
6294: PPUSH
6295: CALL_OW 120
// ComEnterUnit ( RU1_sol3 , RU1_bar2 ) ;
6299: LD_INT 56
6301: PPUSH
6302: LD_INT 17
6304: PPUSH
6305: CALL_OW 120
// ComEnterUnit ( RU1_sol4 , RU1_bar2 ) ;
6309: LD_INT 54
6311: PPUSH
6312: LD_INT 17
6314: PPUSH
6315: CALL_OW 120
// ComEnterUnit ( RU1_sol5 , RU1_bar2 ) ;
6319: LD_INT 55
6321: PPUSH
6322: LD_INT 17
6324: PPUSH
6325: CALL_OW 120
// ComEnterUnit ( RU1_eng1 , RU1_dep ) ;
6329: LD_INT 57
6331: PPUSH
6332: LD_INT 1
6334: PPUSH
6335: CALL_OW 120
// end ;
6339: LD_VAR 0 1
6343: RET
// every 5 5$30 do var pom ;
6344: GO 6346
6346: DISABLE
6347: LD_INT 0
6349: PPUSH
// begin schol2 = create_scholtze ;
6350: LD_ADDR_EXP 32
6354: PUSH
6355: CALL 3687 0 0
6359: ST_TO_ADDR
// wait ( 0 0$2 ) ;
6360: LD_INT 70
6362: PPUSH
6363: CALL_OW 67
// CenterNowOnUnits ( schol2 ) ;
6367: LD_EXP 32
6371: PPUSH
6372: CALL_OW 87
// dialog_scholtze_enter ;
6376: CALL 12193 0 0
// ComMoveToArea ( schol2 , scholze_flee ) ;
6380: LD_EXP 32
6384: PPUSH
6385: LD_INT 45
6387: PPUSH
6388: CALL_OW 113
// AddComHold ( schol2 ) ;
6392: LD_EXP 32
6396: PPUSH
6397: CALL_OW 200
// wait ( 0 0$5 ) ;
6401: LD_INT 175
6403: PPUSH
6404: CALL_OW 67
// amici_hlidka ;
6408: CALL 23996 0 0
// enable ( 1 ) ;
6412: LD_INT 1
6414: ENABLE_MARKED
// end ;
6415: PPOPN 1
6417: END
// every 0 0$1 trigger FilterUnitsInArea ( Schol_les , [ [ f_side , You ] ] ) > 0 marked 1 do
6418: LD_INT 26
6420: PPUSH
6421: LD_INT 22
6423: PUSH
6424: LD_EXP 1
6428: PUSH
6429: EMPTY
6430: LIST
6431: LIST
6432: PUSH
6433: EMPTY
6434: LIST
6435: PPUSH
6436: CALL_OW 70
6440: PUSH
6441: LD_INT 0
6443: GREATER
6444: IFFALSE 6518
6446: GO 6448
6448: DISABLE
// begin kecy_scholtze_nalezen = true ;
6449: LD_ADDR_EXP 42
6453: PUSH
6454: LD_INT 1
6456: ST_TO_ADDR
// dialog_scholtze_nalezen ;
6457: CALL 12265 0 0
// SetSide ( schol2 , You ) ;
6461: LD_EXP 32
6465: PPUSH
6466: LD_EXP 1
6470: PPUSH
6471: CALL_OW 235
// schol = schol2 ;
6475: LD_ADDR_EXP 31
6479: PUSH
6480: LD_EXP 32
6484: ST_TO_ADDR
// ChangeMissionObjectives ( MScholtzeOut ) ;
6485: LD_STRING MScholtzeOut
6487: PPUSH
6488: CALL_OW 337
// wait ( 1 1$0 ) ;
6492: LD_INT 2100
6494: PPUSH
6495: CALL_OW 67
// if IsLive ( schol ) then
6499: LD_EXP 31
6503: PPUSH
6504: CALL_OW 300
6508: IFFALSE 6518
// scholtze_saved = true ;
6510: LD_ADDR_EXP 35
6514: PUSH
6515: LD_INT 1
6517: ST_TO_ADDR
// end ;
6518: END
// every 1 1$0 do
6519: GO 6521
6521: DISABLE
// begin if GetResourceType ( GetBase ( RU1_dep ) , mat_oil ) < 50 then
6522: LD_INT 1
6524: PPUSH
6525: CALL_OW 274
6529: PPUSH
6530: LD_INT 2
6532: PPUSH
6533: CALL_OW 275
6537: PUSH
6538: LD_INT 50
6540: LESS
6541: IFFALSE 6561
// AddResourceType ( GetBase ( RU1_dep ) , mat_oil , 100 ) ;
6543: LD_INT 1
6545: PPUSH
6546: CALL_OW 274
6550: PPUSH
6551: LD_INT 2
6553: PPUSH
6554: LD_INT 100
6556: PPUSH
6557: CALL_OW 276
// enable ;
6561: ENABLE
// end ;
6562: END
// every 1 1$7 do
6563: GO 6565
6565: DISABLE
// begin if Researched ( You2 , tech_Weap1 ) then
6566: LD_EXP 2
6570: PPUSH
6571: LD_INT 51
6573: PPUSH
6574: CALL_OW 325
6578: IFFALSE 6605
// begin SetTech ( tech_Weap1 , You2 , state_enabled ) ;
6580: LD_INT 51
6582: PPUSH
6583: LD_EXP 2
6587: PPUSH
6588: LD_INT 1
6590: PPUSH
6591: CALL_OW 322
// ComResearch ( RU1_lab1 , tech_Weap1 ) ;
6595: LD_INT 6
6597: PPUSH
6598: LD_INT 51
6600: PPUSH
6601: CALL_OW 124
// end ; enable ;
6605: ENABLE
// end ;
6606: END
// every 0 0$19 do
6607: GO 6609
6609: DISABLE
// begin SetTech ( tech_Weap1 , You2 , state_enabled ) ;
6610: LD_INT 51
6612: PPUSH
6613: LD_EXP 2
6617: PPUSH
6618: LD_INT 1
6620: PPUSH
6621: CALL_OW 322
// ComResearch ( RU1_lab1 , tech_Weap1 ) ;
6625: LD_INT 6
6627: PPUSH
6628: LD_INT 51
6630: PPUSH
6631: CALL_OW 124
// end ;
6635: END
// every 0 0$5 trigger stav_omikron = 2 do
6636: LD_EXP 37
6640: PUSH
6641: LD_INT 2
6643: EQUAL
6644: IFFALSE 6687
6646: GO 6648
6648: DISABLE
// begin TTime = 7 7$0 ;
6649: LD_ADDR_LOC 21
6653: PUSH
6654: LD_INT 14700
6656: ST_TO_ADDR
// enable ( 53 ) ;
6657: LD_INT 53
6659: ENABLE_MARKED
// wait ( 7 7$0 ) ;
6660: LD_INT 14700
6662: PPUSH
6663: CALL_OW 67
// special_time = true ;
6667: LD_ADDR_EXP 46
6671: PUSH
6672: LD_INT 1
6674: ST_TO_ADDR
// hlaska_omicron ;
6675: CALL 13854 0 0
// stav_omikron = 3 ;
6679: LD_ADDR_EXP 37
6683: PUSH
6684: LD_INT 3
6686: ST_TO_ADDR
// end ;
6687: END
// export function popov_ven ; begin
6688: LD_INT 0
6690: PPUSH
// ComExitBuilding ( pop ) ;
6691: LD_EXP 26
6695: PPUSH
6696: CALL_OW 122
// AddComMoveToArea ( pop , bst_2 ) ;
6700: LD_EXP 26
6704: PPUSH
6705: LD_INT 41
6707: PPUSH
6708: CALL_OW 173
// AddComMoveToArea ( pop , bst_3 ) ;
6712: LD_EXP 26
6716: PPUSH
6717: LD_INT 42
6719: PPUSH
6720: CALL_OW 173
// AddComHold ( pop ) ;
6724: LD_EXP 26
6728: PPUSH
6729: CALL_OW 200
// end ;
6733: LD_VAR 0 1
6737: RET
// every 0 0$5 trigger IsInArea ( pop , Exit_area ) do
6738: LD_EXP 26
6742: PPUSH
6743: LD_INT 16
6745: PPUSH
6746: CALL_OW 308
6750: IFFALSE 6764
6752: GO 6754
6754: DISABLE
// begin RemoveUnit ( pop ) ;
6755: LD_EXP 26
6759: PPUSH
6760: CALL_OW 64
// end ;
6764: END
// export function prebarveni_druhe_baze ; var pom , i ; begin
6765: LD_INT 0
6767: PPUSH
6768: PPUSH
6769: PPUSH
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You3 ] , [ f_type , unit_building ] ] ) ;
6770: LD_ADDR_VAR 0 2
6774: PUSH
6775: LD_INT 2
6777: PPUSH
6778: LD_INT 22
6780: PUSH
6781: LD_EXP 3
6785: PUSH
6786: EMPTY
6787: LIST
6788: LIST
6789: PUSH
6790: LD_INT 21
6792: PUSH
6793: LD_INT 3
6795: PUSH
6796: EMPTY
6797: LIST
6798: LIST
6799: PUSH
6800: EMPTY
6801: LIST
6802: LIST
6803: PPUSH
6804: CALL_OW 70
6808: ST_TO_ADDR
// for i in pom do
6809: LD_ADDR_VAR 0 3
6813: PUSH
6814: LD_VAR 0 2
6818: PUSH
6819: FOR_IN
6820: IFFALSE 6838
// SetSide ( i , You ) ;
6822: LD_VAR 0 3
6826: PPUSH
6827: LD_EXP 1
6831: PPUSH
6832: CALL_OW 235
6836: GO 6819
6838: POP
6839: POP
// end ;
6840: LD_VAR 0 1
6844: RET
// export function pomoc_pro_omikroni_utok ; var i ; begin
6845: LD_INT 0
6847: PPUSH
6848: PPUSH
// for i in RUSKE_POSILY_NA_OMICRON_LIST do
6849: LD_ADDR_VAR 0 2
6853: PUSH
6854: LD_EXP 54
6858: PUSH
6859: FOR_IN
6860: IFFALSE 6879
// PlaceUnitArea ( i , Enterposil , false ) ;
6862: LD_VAR 0 2
6866: PPUSH
6867: LD_INT 49
6869: PPUSH
6870: LD_INT 0
6872: PPUSH
6873: CALL_OW 49
6877: GO 6859
6879: POP
6880: POP
// ComMoveToArea ( RUSKE_POSILY_NA_OMICRON_LIST , bst_4 ) ;
6881: LD_EXP 54
6885: PPUSH
6886: LD_INT 43
6888: PPUSH
6889: CALL_OW 113
// for i in RUSKE_POSILY_RIDICI_LIST do
6893: LD_ADDR_VAR 0 2
6897: PUSH
6898: LD_EXP 55
6902: PUSH
6903: FOR_IN
6904: IFFALSE 6923
// PlaceUnitArea ( i , Arabi1 , false ) ;
6906: LD_VAR 0 2
6910: PPUSH
6911: LD_INT 12
6913: PPUSH
6914: LD_INT 0
6916: PPUSH
6917: CALL_OW 49
6921: GO 6903
6923: POP
6924: POP
// ComMoveToArea ( RUSKE_POSILY_RIDICI_LIST , bst_1 ) ;
6925: LD_EXP 55
6929: PPUSH
6930: LD_INT 40
6932: PPUSH
6933: CALL_OW 113
// AddComEnterUnit ( RUSKE_POSILY_RIDICI_LIST , RU1_fac ) ;
6937: LD_EXP 55
6941: PPUSH
6942: LD_INT 5
6944: PPUSH
6945: CALL_OW 180
// end ;
6949: LD_VAR 0 1
6953: RET
// every 0 0$1 trigger stav_omikron = 3 and not special_time do
6954: LD_EXP 37
6958: PUSH
6959: LD_INT 3
6961: EQUAL
6962: PUSH
6963: LD_EXP 46
6967: NOT
6968: AND
6969: IFFALSE 7003
6971: GO 6973
6973: DISABLE
// begin disable ( 53 ) ;
6974: LD_INT 53
6976: DISABLE_MARKED
// TTime = 3 3$0 ;
6977: LD_ADDR_LOC 21
6981: PUSH
6982: LD_INT 6300
6984: ST_TO_ADDR
// enable ( 51 ) ;
6985: LD_INT 51
6987: ENABLE_MARKED
// counter_zapnut = true ;
6988: LD_ADDR_LOC 17
6992: PUSH
6993: LD_INT 1
6995: ST_TO_ADDR
// posli_ruske_posily ;
6996: CALL 7456 0 0
// enable ( 3 ) ;
7000: LD_INT 3
7002: ENABLE_MARKED
// end ;
7003: END
// every 0 0$1 trigger stav_omikron = 3 and special_time do
7004: LD_EXP 37
7008: PUSH
7009: LD_INT 3
7011: EQUAL
7012: PUSH
7013: LD_EXP 46
7017: AND
7018: IFFALSE 7052
7020: GO 7022
7022: DISABLE
// begin disable ( 53 ) ;
7023: LD_INT 53
7025: DISABLE_MARKED
// TTime = 2 2$0 ;
7026: LD_ADDR_LOC 21
7030: PUSH
7031: LD_INT 4200
7033: ST_TO_ADDR
// enable ( 51 ) ;
7034: LD_INT 51
7036: ENABLE_MARKED
// counter_zapnut = true ;
7037: LD_ADDR_LOC 17
7041: PUSH
7042: LD_INT 1
7044: ST_TO_ADDR
// posli_ruske_posily ;
7045: CALL 7456 0 0
// enable ( 3 ) ;
7049: LD_INT 3
7051: ENABLE_MARKED
// end ;
7052: END
// every 0 0$3 trigger stav_omikron = 3 do var i , pom , pom1 , pom2 , rpom ; var rusi_enter_new ; var poc ;
7053: LD_EXP 37
7057: PUSH
7058: LD_INT 3
7060: EQUAL
7061: IFFALSE 7453
7063: GO 7065
7065: DISABLE
7066: LD_INT 0
7068: PPUSH
7069: PPUSH
7070: PPUSH
7071: PPUSH
7072: PPUSH
7073: PPUSH
7074: PPUSH
// begin if FilterUnitsInArea ( Om_zone , [ [ f_side , You ] ] ) then
7075: LD_INT 8
7077: PPUSH
7078: LD_INT 22
7080: PUSH
7081: LD_EXP 1
7085: PUSH
7086: EMPTY
7087: LIST
7088: LIST
7089: PUSH
7090: EMPTY
7091: LIST
7092: PPUSH
7093: CALL_OW 70
7097: IFFALSE 7452
// begin rpom = FilterUnitsExceptArea ( Om_pom1 , [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
7099: LD_ADDR_VAR 0 5
7103: PUSH
7104: LD_INT 23
7106: PPUSH
7107: LD_INT 22
7109: PUSH
7110: LD_EXP 1
7114: PUSH
7115: EMPTY
7116: LIST
7117: LIST
7118: PUSH
7119: LD_INT 21
7121: PUSH
7122: LD_INT 1
7124: PUSH
7125: EMPTY
7126: LIST
7127: LIST
7128: PUSH
7129: EMPTY
7130: LIST
7131: LIST
7132: PPUSH
7133: CALL_OW 71
7137: ST_TO_ADDR
// if rpom = 0 then
7138: LD_VAR 0 5
7142: PUSH
7143: LD_INT 0
7145: EQUAL
7146: IFFALSE 7449
// begin disable ( 51 ) ;
7148: LD_INT 51
7150: DISABLE_MARKED
// disable ( 52 ) ;
7151: LD_INT 52
7153: DISABLE_MARKED
// konec_counteru = true ;
7154: LD_ADDR_EXP 43
7158: PUSH
7159: LD_INT 1
7161: ST_TO_ADDR
// poc = 0 ;
7162: LD_ADDR_VAR 0 7
7166: PUSH
7167: LD_INT 0
7169: ST_TO_ADDR
// while FilterUnitsInArea ( Om_zone , [ [ f_side , You2 ] ] ) = 0 and poc < 60 do
7170: LD_INT 8
7172: PPUSH
7173: LD_INT 22
7175: PUSH
7176: LD_EXP 2
7180: PUSH
7181: EMPTY
7182: LIST
7183: LIST
7184: PUSH
7185: EMPTY
7186: LIST
7187: PPUSH
7188: CALL_OW 70
7192: PUSH
7193: LD_INT 0
7195: EQUAL
7196: PUSH
7197: LD_VAR 0 7
7201: PUSH
7202: LD_INT 60
7204: LESS
7205: AND
7206: IFFALSE 7231
// begin wait ( 0 0$1 ) ;
7208: LD_INT 35
7210: PPUSH
7211: CALL_OW 67
// poc = poc + 1 ;
7215: LD_ADDR_VAR 0 7
7219: PUSH
7220: LD_VAR 0 7
7224: PUSH
7225: LD_INT 1
7227: PLUS
7228: ST_TO_ADDR
// end ;
7229: GO 7170
// stav_omikron = 4 ;
7231: LD_ADDR_EXP 37
7235: PUSH
7236: LD_INT 4
7238: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7239: LD_ADDR_VAR 0 2
7243: PUSH
7244: LD_INT 22
7246: PUSH
7247: LD_EXP 1
7251: PUSH
7252: EMPTY
7253: LIST
7254: LIST
7255: PUSH
7256: LD_INT 21
7258: PUSH
7259: LD_INT 2
7261: PUSH
7262: EMPTY
7263: LIST
7264: LIST
7265: PUSH
7266: EMPTY
7267: LIST
7268: LIST
7269: PPUSH
7270: CALL_OW 69
7274: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] , [ f_alive ] ] ) ;
7275: LD_ADDR_VAR 0 3
7279: PUSH
7280: LD_INT 22
7282: PUSH
7283: LD_EXP 1
7287: PUSH
7288: EMPTY
7289: LIST
7290: LIST
7291: PUSH
7292: LD_INT 21
7294: PUSH
7295: LD_INT 1
7297: PUSH
7298: EMPTY
7299: LIST
7300: LIST
7301: PUSH
7302: LD_INT 51
7304: PUSH
7305: EMPTY
7306: LIST
7307: PUSH
7308: EMPTY
7309: LIST
7310: LIST
7311: LIST
7312: PPUSH
7313: CALL_OW 69
7317: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Ru2_base , [ [ f_side , You2 ] , [ f_type , unit_vehicle ] ] ) ;
7318: LD_ADDR_VAR 0 4
7322: PUSH
7323: LD_INT 2
7325: PPUSH
7326: LD_INT 22
7328: PUSH
7329: LD_EXP 2
7333: PUSH
7334: EMPTY
7335: LIST
7336: LIST
7337: PUSH
7338: LD_INT 21
7340: PUSH
7341: LD_INT 2
7343: PUSH
7344: EMPTY
7345: LIST
7346: LIST
7347: PUSH
7348: EMPTY
7349: LIST
7350: LIST
7351: PPUSH
7352: CALL_OW 70
7356: ST_TO_ADDR
// pom = pom + pom2 ;
7357: LD_ADDR_VAR 0 2
7361: PUSH
7362: LD_VAR 0 2
7366: PUSH
7367: LD_VAR 0 4
7371: PLUS
7372: ST_TO_ADDR
// if pom < pom1 then
7373: LD_VAR 0 2
7377: PUSH
7378: LD_VAR 0 3
7382: LESS
7383: IFFALSE 7393
// stav_aut_new = 3 ;
7385: LD_ADDR_EXP 44
7389: PUSH
7390: LD_INT 3
7392: ST_TO_ADDR
// if pom = pom1 then
7393: LD_VAR 0 2
7397: PUSH
7398: LD_VAR 0 3
7402: EQUAL
7403: IFFALSE 7413
// stav_aut_new = 2 ;
7405: LD_ADDR_EXP 44
7409: PUSH
7410: LD_INT 2
7412: ST_TO_ADDR
// if pom > pom1 then
7413: LD_VAR 0 2
7417: PUSH
7418: LD_VAR 0 3
7422: GREATER
7423: IFFALSE 7433
// stav_aut_new = 1 ;
7425: LD_ADDR_EXP 44
7429: PUSH
7430: LD_INT 1
7432: ST_TO_ADDR
// dialog_pred_omicronem ;
7433: CALL 13929 0 0
// enable ( 9 ) ;
7437: LD_INT 9
7439: ENABLE_MARKED
// programovani_pomocneho_utoku ;
7440: CALL 0 0 0
// disable ( 3 ) ;
7444: LD_INT 3
7446: DISABLE_MARKED
// end else
7447: GO 7450
// enable ;
7449: ENABLE
// end else
7450: GO 7453
// enable ;
7452: ENABLE
// end ;
7453: PPOPN 7
7455: END
// function posli_ruske_posily ; begin
7456: LD_INT 0
7458: PPUSH
// McMove ( 1 , RUSKE_POSILY_NA_OMICRON_LIST , [ [ 109 , 54 ] , [ 102 , 38 ] , [ 90 , 22 ] , [ 54 , 10 ] ] , [ mc_move_dontcapture ] ) ;
7459: LD_INT 1
7461: PPUSH
7462: LD_EXP 54
7466: PPUSH
7467: LD_INT 109
7469: PUSH
7470: LD_INT 54
7472: PUSH
7473: EMPTY
7474: LIST
7475: LIST
7476: PUSH
7477: LD_INT 102
7479: PUSH
7480: LD_INT 38
7482: PUSH
7483: EMPTY
7484: LIST
7485: LIST
7486: PUSH
7487: LD_INT 90
7489: PUSH
7490: LD_INT 22
7492: PUSH
7493: EMPTY
7494: LIST
7495: LIST
7496: PUSH
7497: LD_INT 54
7499: PUSH
7500: LD_INT 10
7502: PUSH
7503: EMPTY
7504: LIST
7505: LIST
7506: PUSH
7507: EMPTY
7508: LIST
7509: LIST
7510: LIST
7511: LIST
7512: PPUSH
7513: LD_INT 5
7515: PUSH
7516: EMPTY
7517: LIST
7518: PPUSH
7519: CALL_OW 398
// end ;
7523: LD_VAR 0 1
7527: RET
// every 0 0$7 marked 2 do var pom ;
7528: GO 7530
7530: DISABLE
7531: LD_INT 0
7533: PPUSH
// begin ComExitBuilding ( RUSKE_POSILY_RIDICI_LIST ) ;
7534: LD_EXP 55
7538: PPUSH
7539: CALL_OW 122
// while FilterUnitsInArea ( RU2_base , [ [ f_side , You2 ] ] ) < RUSKE_POSILY_RIDICI_LIST do
7543: LD_INT 2
7545: PPUSH
7546: LD_INT 22
7548: PUSH
7549: LD_EXP 2
7553: PUSH
7554: EMPTY
7555: LIST
7556: LIST
7557: PUSH
7558: EMPTY
7559: LIST
7560: PPUSH
7561: CALL_OW 70
7565: PUSH
7566: LD_EXP 55
7570: LESS
7571: IFFALSE 7594
// begin ComMoveToArea ( RUSKE_POSILY_RIDICI_LIST , drivers_enter ) ;
7573: LD_EXP 55
7577: PPUSH
7578: LD_INT 47
7580: PPUSH
7581: CALL_OW 113
// wait ( 0 0$1 ) ;
7585: LD_INT 35
7587: PPUSH
7588: CALL_OW 67
// end ;
7592: GO 7543
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_type , unit_vehicle ] , f_not , [ f_occupied ] ] ) ;
7594: LD_ADDR_VAR 0 1
7598: PUSH
7599: LD_INT 2
7601: PPUSH
7602: LD_INT 22
7604: PUSH
7605: LD_EXP 1
7609: PUSH
7610: EMPTY
7611: LIST
7612: LIST
7613: PUSH
7614: LD_INT 21
7616: PUSH
7617: LD_INT 2
7619: PUSH
7620: EMPTY
7621: LIST
7622: LIST
7623: PUSH
7624: LD_INT 3
7626: PUSH
7627: LD_INT 59
7629: PUSH
7630: EMPTY
7631: LIST
7632: PUSH
7633: EMPTY
7634: LIST
7635: LIST
7636: LIST
7637: LIST
7638: PPUSH
7639: CALL_OW 70
7643: ST_TO_ADDR
// if not pom then
7644: LD_VAR 0 1
7648: NOT
7649: IFFALSE 7655
// konec_mise_lhani ;
7651: CALL 2851 0 0
// end ;
7655: PPOPN 1
7657: END
// every 0 0$1 marked 3 do
7658: GO 7660
7660: DISABLE
// begin if special_time then
7661: LD_EXP 46
7665: IFFALSE 7676
// wait ( 2 2$0 ) else
7667: LD_INT 4200
7669: PPUSH
7670: CALL_OW 67
7674: GO 7683
// wait ( 3 3$0 ) ;
7676: LD_INT 6300
7678: PPUSH
7679: CALL_OW 67
// if not setkani_om then
7683: LD_EXP 39
7687: NOT
7688: IFFALSE 7726
// begin dialog_upoz ;
7690: CALL 16399 0 0
// TTime = 2 2$0 ;
7694: LD_ADDR_LOC 21
7698: PUSH
7699: LD_INT 4200
7701: ST_TO_ADDR
// disable ( 51 ) ;
7702: LD_INT 51
7704: DISABLE_MARKED
// enable ( 52 ) ;
7705: LD_INT 52
7707: ENABLE_MARKED
// wait ( 2 2$0 ) ;
7708: LD_INT 4200
7710: PPUSH
7711: CALL_OW 67
// if not setkani_om then
7715: LD_EXP 39
7719: NOT
7720: IFFALSE 7726
// konec_pred_omikronem ;
7722: CALL 2870 0 0
// end ; end ;
7726: END
// every 0 0$1 marked 4 do var pom ;
7727: GO 7729
7729: DISABLE
7730: LD_INT 0
7732: PPUSH
// begin wait ( utok_na_omikron - 5 5$0 ) ;
7733: LD_EXP 17
7737: PUSH
7738: LD_INT 10500
7740: MINUS
7741: PPUSH
7742: CALL_OW 67
// pomoc_pro_omikroni_utok ;
7746: CALL 6845 0 0
// wait ( 5 5$0 ) ;
7750: LD_INT 10500
7752: PPUSH
7753: CALL_OW 67
// disable ( 5 ) ;
7757: LD_INT 5
7759: DISABLE_MARKED
// if dialog_probehnul then
7760: LD_LOC 19
7764: IFFALSE 7770
// exit else
7766: GO 7878
7768: GO 7778
// dialog_probehnul := true ;
7770: LD_ADDR_LOC 19
7774: PUSH
7775: LD_INT 1
7777: ST_TO_ADDR
// pom = dialog_otazka_poctu_aut ;
7778: LD_ADDR_VAR 0 1
7782: PUSH
7783: CALL 13651 0 0
7787: ST_TO_ADDR
// case pom of 1 :
7788: LD_VAR 0 1
7792: PUSH
7793: LD_INT 1
7795: DOUBLE
7796: EQUAL
7797: IFTRUE 7801
7799: GO 7823
7801: POP
// begin stav_omikron = 3 ;
7802: LD_ADDR_EXP 37
7806: PUSH
7807: LD_INT 3
7809: ST_TO_ADDR
// stav_aut = 1 ;
7810: LD_ADDR_EXP 36
7814: PUSH
7815: LD_INT 1
7817: ST_TO_ADDR
// enable ( 2 ) ;
7818: LD_INT 2
7820: ENABLE_MARKED
// end ; 2 :
7821: GO 7878
7823: LD_INT 2
7825: DOUBLE
7826: EQUAL
7827: IFTRUE 7831
7829: GO 7850
7831: POP
// begin stav_omikron = 3 ;
7832: LD_ADDR_EXP 37
7836: PUSH
7837: LD_INT 3
7839: ST_TO_ADDR
// stav_aut = 2 ;
7840: LD_ADDR_EXP 36
7844: PUSH
7845: LD_INT 2
7847: ST_TO_ADDR
// end ; 3 :
7848: GO 7878
7850: LD_INT 3
7852: DOUBLE
7853: EQUAL
7854: IFTRUE 7858
7856: GO 7877
7858: POP
// begin stav_omikron = 2 ;
7859: LD_ADDR_EXP 37
7863: PUSH
7864: LD_INT 2
7866: ST_TO_ADDR
// stav_aut = 3 ;
7867: LD_ADDR_EXP 36
7871: PUSH
7872: LD_INT 3
7874: ST_TO_ADDR
// end ; end ;
7875: GO 7878
7877: POP
// end ;
7878: PPOPN 1
7880: END
// every 0 0$17 trigger stav_omikron < 2 marked 5 do var un , veh ;
7881: LD_EXP 37
7885: PUSH
7886: LD_INT 2
7888: LESS
7889: IFFALSE 8121
7891: GO 7893
7893: DISABLE
7894: LD_INT 0
7896: PPUSH
7897: PPUSH
// begin un = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
7898: LD_ADDR_VAR 0 1
7902: PUSH
7903: LD_INT 22
7905: PUSH
7906: LD_EXP 1
7910: PUSH
7911: EMPTY
7912: LIST
7913: LIST
7914: PUSH
7915: LD_INT 21
7917: PUSH
7918: LD_INT 1
7920: PUSH
7921: EMPTY
7922: LIST
7923: LIST
7924: PUSH
7925: EMPTY
7926: LIST
7927: LIST
7928: PPUSH
7929: CALL_OW 69
7933: ST_TO_ADDR
// veh = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
7934: LD_ADDR_VAR 0 2
7938: PUSH
7939: LD_INT 22
7941: PUSH
7942: LD_EXP 1
7946: PUSH
7947: EMPTY
7948: LIST
7949: LIST
7950: PUSH
7951: LD_INT 21
7953: PUSH
7954: LD_INT 2
7956: PUSH
7957: EMPTY
7958: LIST
7959: LIST
7960: PUSH
7961: EMPTY
7962: LIST
7963: LIST
7964: PPUSH
7965: CALL_OW 69
7969: ST_TO_ADDR
// if veh >= ( un + 2 ) then
7970: LD_VAR 0 2
7974: PUSH
7975: LD_VAR 0 1
7979: PUSH
7980: LD_INT 2
7982: PLUS
7983: GREATEREQUAL
7984: IFFALSE 8120
// begin disable ( 4 ) ;
7986: LD_INT 4
7988: DISABLE_MARKED
// pomoc_pro_omikroni_utok ;
7989: CALL 6845 0 0
// if dialog_probehnul then
7993: LD_LOC 19
7997: IFFALSE 8003
// exit else
7999: GO 8121
8001: GO 8011
// dialog_probehnul = true ;
8003: LD_ADDR_LOC 19
8007: PUSH
8008: LD_INT 1
8010: ST_TO_ADDR
// wait ( 0 0$10 ) ;
8011: LD_INT 350
8013: PPUSH
8014: CALL_OW 67
// un = dialog_otazka_poctu_aut ;
8018: LD_ADDR_VAR 0 1
8022: PUSH
8023: CALL 13651 0 0
8027: ST_TO_ADDR
// case un of 1 :
8028: LD_VAR 0 1
8032: PUSH
8033: LD_INT 1
8035: DOUBLE
8036: EQUAL
8037: IFTRUE 8041
8039: GO 8063
8041: POP
// begin stav_omikron = 3 ;
8042: LD_ADDR_EXP 37
8046: PUSH
8047: LD_INT 3
8049: ST_TO_ADDR
// stav_aut = 1 ;
8050: LD_ADDR_EXP 36
8054: PUSH
8055: LD_INT 1
8057: ST_TO_ADDR
// enable ( 2 ) ;
8058: LD_INT 2
8060: ENABLE_MARKED
// end ; 2 :
8061: GO 8118
8063: LD_INT 2
8065: DOUBLE
8066: EQUAL
8067: IFTRUE 8071
8069: GO 8090
8071: POP
// begin stav_omikron = 3 ;
8072: LD_ADDR_EXP 37
8076: PUSH
8077: LD_INT 3
8079: ST_TO_ADDR
// stav_aut = 2 ;
8080: LD_ADDR_EXP 36
8084: PUSH
8085: LD_INT 2
8087: ST_TO_ADDR
// end ; 3 :
8088: GO 8118
8090: LD_INT 3
8092: DOUBLE
8093: EQUAL
8094: IFTRUE 8098
8096: GO 8117
8098: POP
// begin stav_omikron = 2 ;
8099: LD_ADDR_EXP 37
8103: PUSH
8104: LD_INT 2
8106: ST_TO_ADDR
// stav_aut = 3 ;
8107: LD_ADDR_EXP 36
8111: PUSH
8112: LD_INT 3
8114: ST_TO_ADDR
// end ; end ;
8115: GO 8118
8117: POP
// end else
8118: GO 8121
// enable ;
8120: ENABLE
// end ;
8121: PPOPN 2
8123: END
// export function manage_ruske_computery_zpet ; var pom ; begin
8124: LD_INT 0
8126: PPUSH
8127: PPUSH
// disable ( 200 ) ;
8128: LD_INT 200
8130: DISABLE_MARKED
// disable ( 201 ) ;
8131: LD_INT 201
8133: DISABLE_MARKED
// disable ( 202 ) ;
8134: LD_INT 202
8136: DISABLE_MARKED
// disable ( 203 ) ;
8137: LD_INT 203
8139: DISABLE_MARKED
// pom = FilterUnitsInArea ( Am_base , [ [ F_side , You2 ] ] ) ;
8140: LD_ADDR_VAR 0 2
8144: PUSH
8145: LD_INT 6
8147: PPUSH
8148: LD_INT 22
8150: PUSH
8151: LD_EXP 2
8155: PUSH
8156: EMPTY
8157: LIST
8158: LIST
8159: PUSH
8160: EMPTY
8161: LIST
8162: PPUSH
8163: CALL_OW 70
8167: ST_TO_ADDR
// McMove ( 2 , pom , [ [ 42 , 14 ] , [ 60 , 15 ] , [ 95 , 21 ] , [ 100 , 34 ] ] , [ mc_move_agressive , mc_move_wait , mc_move_waitwp ] ) ;
8168: LD_INT 2
8170: PPUSH
8171: LD_VAR 0 2
8175: PPUSH
8176: LD_INT 42
8178: PUSH
8179: LD_INT 14
8181: PUSH
8182: EMPTY
8183: LIST
8184: LIST
8185: PUSH
8186: LD_INT 60
8188: PUSH
8189: LD_INT 15
8191: PUSH
8192: EMPTY
8193: LIST
8194: LIST
8195: PUSH
8196: LD_INT 95
8198: PUSH
8199: LD_INT 21
8201: PUSH
8202: EMPTY
8203: LIST
8204: LIST
8205: PUSH
8206: LD_INT 100
8208: PUSH
8209: LD_INT 34
8211: PUSH
8212: EMPTY
8213: LIST
8214: LIST
8215: PUSH
8216: EMPTY
8217: LIST
8218: LIST
8219: LIST
8220: LIST
8221: PPUSH
8222: LD_INT 6
8224: PUSH
8225: LD_INT 1
8227: PUSH
8228: LD_INT 3
8230: PUSH
8231: EMPTY
8232: LIST
8233: LIST
8234: LIST
8235: PPUSH
8236: CALL_OW 398
// enable ( 5 ) ;
8240: LD_INT 5
8242: ENABLE_MARKED
// R_comp = pom ;
8243: LD_ADDR_LOC 18
8247: PUSH
8248: LD_VAR 0 2
8252: ST_TO_ADDR
// end ;
8253: LD_VAR 0 1
8257: RET
// every 0 0$15 marked 5 do
8258: GO 8260
8260: DISABLE
// begin wait ( 1 1$0 ) ;
8261: LD_INT 2100
8263: PPUSH
8264: CALL_OW 67
// McMove ( 1 , R_comp , [ [ 110 , 59 ] , [ 129 , 75 ] ] , [ mc_move_agressive , mc_move_wait , mc_move_waitwp ] ) ;
8268: LD_INT 1
8270: PPUSH
8271: LD_LOC 18
8275: PPUSH
8276: LD_INT 110
8278: PUSH
8279: LD_INT 59
8281: PUSH
8282: EMPTY
8283: LIST
8284: LIST
8285: PUSH
8286: LD_INT 129
8288: PUSH
8289: LD_INT 75
8291: PUSH
8292: EMPTY
8293: LIST
8294: LIST
8295: PUSH
8296: EMPTY
8297: LIST
8298: LIST
8299: PPUSH
8300: LD_INT 6
8302: PUSH
8303: LD_INT 1
8305: PUSH
8306: LD_INT 3
8308: PUSH
8309: EMPTY
8310: LIST
8311: LIST
8312: LIST
8313: PPUSH
8314: CALL_OW 398
// end ;
8318: END
// function split_ruske_jednotky ( jedn ) ; var i , pom ; var p1 , p2 , p3 , p4 ; var a ; begin
8319: LD_INT 0
8321: PPUSH
8322: PPUSH
8323: PPUSH
8324: PPUSH
8325: PPUSH
8326: PPUSH
8327: PPUSH
8328: PPUSH
// p1 = [ ] ;
8329: LD_ADDR_VAR 0 5
8333: PUSH
8334: EMPTY
8335: ST_TO_ADDR
// p2 = [ ] ;
8336: LD_ADDR_VAR 0 6
8340: PUSH
8341: EMPTY
8342: ST_TO_ADDR
// p3 = [ ] ;
8343: LD_ADDR_VAR 0 7
8347: PUSH
8348: EMPTY
8349: ST_TO_ADDR
// p4 = [ ] ;
8350: LD_ADDR_VAR 0 8
8354: PUSH
8355: EMPTY
8356: ST_TO_ADDR
// for i in jedn do
8357: LD_ADDR_VAR 0 3
8361: PUSH
8362: LD_VAR 0 1
8366: PUSH
8367: FOR_IN
8368: IFFALSE 8502
// begin pom = Rand ( 1 , 4 ) ;
8370: LD_ADDR_VAR 0 4
8374: PUSH
8375: LD_INT 1
8377: PPUSH
8378: LD_INT 4
8380: PPUSH
8381: CALL_OW 12
8385: ST_TO_ADDR
// case pom of 1 :
8386: LD_VAR 0 4
8390: PUSH
8391: LD_INT 1
8393: DOUBLE
8394: EQUAL
8395: IFTRUE 8399
8397: GO 8418
8399: POP
// p1 = p1 ^ i ; 2 :
8400: LD_ADDR_VAR 0 5
8404: PUSH
8405: LD_VAR 0 5
8409: PUSH
8410: LD_VAR 0 3
8414: ADD
8415: ST_TO_ADDR
8416: GO 8500
8418: LD_INT 2
8420: DOUBLE
8421: EQUAL
8422: IFTRUE 8426
8424: GO 8445
8426: POP
// p2 = p2 ^ i ; 3 :
8427: LD_ADDR_VAR 0 6
8431: PUSH
8432: LD_VAR 0 6
8436: PUSH
8437: LD_VAR 0 3
8441: ADD
8442: ST_TO_ADDR
8443: GO 8500
8445: LD_INT 3
8447: DOUBLE
8448: EQUAL
8449: IFTRUE 8453
8451: GO 8472
8453: POP
// p3 = p3 ^ i ; 4 :
8454: LD_ADDR_VAR 0 7
8458: PUSH
8459: LD_VAR 0 7
8463: PUSH
8464: LD_VAR 0 3
8468: ADD
8469: ST_TO_ADDR
8470: GO 8500
8472: LD_INT 4
8474: DOUBLE
8475: EQUAL
8476: IFTRUE 8480
8478: GO 8499
8480: POP
// p4 = p4 ^ i ; end ;
8481: LD_ADDR_VAR 0 8
8485: PUSH
8486: LD_VAR 0 8
8490: PUSH
8491: LD_VAR 0 3
8495: ADD
8496: ST_TO_ADDR
8497: GO 8500
8499: POP
// end ;
8500: GO 8367
8502: POP
8503: POP
// a = [ p1 , p2 , p3 , p4 ] ;
8504: LD_ADDR_VAR 0 9
8508: PUSH
8509: LD_VAR 0 5
8513: PUSH
8514: LD_VAR 0 6
8518: PUSH
8519: LD_VAR 0 7
8523: PUSH
8524: LD_VAR 0 8
8528: PUSH
8529: EMPTY
8530: LIST
8531: LIST
8532: LIST
8533: LIST
8534: ST_TO_ADDR
// result := a ;
8535: LD_ADDR_VAR 0 2
8539: PUSH
8540: LD_VAR 0 9
8544: ST_TO_ADDR
// end ;
8545: LD_VAR 0 2
8549: RET
// every 0 0$1 marked 6 do var pom , i ;
8550: GO 8552
8552: DISABLE
8553: LD_INT 0
8555: PPUSH
8556: PPUSH
// begin pom = FilterUnitsInArea ( RU_odber , [ [ f_side , You2 ] ] ) ;
8557: LD_ADDR_VAR 0 1
8561: PUSH
8562: LD_INT 27
8564: PPUSH
8565: LD_INT 22
8567: PUSH
8568: LD_EXP 2
8572: PUSH
8573: EMPTY
8574: LIST
8575: LIST
8576: PUSH
8577: EMPTY
8578: LIST
8579: PPUSH
8580: CALL_OW 70
8584: ST_TO_ADDR
// if pom > 0 then
8585: LD_VAR 0 1
8589: PUSH
8590: LD_INT 0
8592: GREATER
8593: IFFALSE 8637
// begin Rusi_utekli = Rusi_utekli ^ pom ;
8595: LD_ADDR_EXP 40
8599: PUSH
8600: LD_EXP 40
8604: PUSH
8605: LD_VAR 0 1
8609: ADD
8610: ST_TO_ADDR
// for i in pom do
8611: LD_ADDR_VAR 0 2
8615: PUSH
8616: LD_VAR 0 1
8620: PUSH
8621: FOR_IN
8622: IFFALSE 8635
// RemoveUnit ( i ) ;
8624: LD_VAR 0 2
8628: PPUSH
8629: CALL_OW 64
8633: GO 8621
8635: POP
8636: POP
// end ; enable ;
8637: ENABLE
// end ;
8638: PPOPN 2
8640: END
// every 25 25$0 do var i , pom ;
8641: GO 8643
8643: DISABLE
8644: LD_INT 0
8646: PPUSH
8647: PPUSH
// begin for i in RU_posily_na_utek do
8648: LD_ADDR_VAR 0 1
8652: PUSH
8653: LD_EXP 56
8657: PUSH
8658: FOR_IN
8659: IFFALSE 8678
// PlaceUnitArea ( i , Ru_posily , false ) ;
8661: LD_VAR 0 1
8665: PPUSH
8666: LD_INT 28
8668: PPUSH
8669: LD_INT 0
8671: PPUSH
8672: CALL_OW 49
8676: GO 8658
8678: POP
8679: POP
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_type , unit_vehicle ] ] ) ;
8680: LD_ADDR_VAR 0 2
8684: PUSH
8685: LD_EXP 56
8689: PPUSH
8690: LD_INT 21
8692: PUSH
8693: LD_INT 2
8695: PUSH
8696: EMPTY
8697: LIST
8698: LIST
8699: PUSH
8700: EMPTY
8701: LIST
8702: PPUSH
8703: CALL_OW 72
8707: ST_TO_ADDR
// ComMoveXY ( pom , 155 , 93 ) ;
8708: LD_VAR 0 2
8712: PPUSH
8713: LD_INT 155
8715: PPUSH
8716: LD_INT 93
8718: PPUSH
8719: CALL_OW 111
// Rusi_save = pom ;
8723: LD_ADDR_EXP 41
8727: PUSH
8728: LD_VAR 0 2
8732: ST_TO_ADDR
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_class , class_soldier ] ] ) ;
8733: LD_ADDR_VAR 0 2
8737: PUSH
8738: LD_EXP 56
8742: PPUSH
8743: LD_INT 25
8745: PUSH
8746: LD_INT 1
8748: PUSH
8749: EMPTY
8750: LIST
8751: LIST
8752: PUSH
8753: EMPTY
8754: LIST
8755: PPUSH
8756: CALL_OW 72
8760: ST_TO_ADDR
// ComEnterUnit ( pom , RU1_bar2 ) ;
8761: LD_VAR 0 2
8765: PPUSH
8766: LD_INT 17
8768: PPUSH
8769: CALL_OW 120
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_class , class_mechanic ] ] ) ;
8773: LD_ADDR_VAR 0 2
8777: PUSH
8778: LD_EXP 56
8782: PPUSH
8783: LD_INT 25
8785: PUSH
8786: LD_INT 3
8788: PUSH
8789: EMPTY
8790: LIST
8791: LIST
8792: PUSH
8793: EMPTY
8794: LIST
8795: PPUSH
8796: CALL_OW 72
8800: ST_TO_ADDR
// ComEnterUnit ( pom , RU1_fac ) ;
8801: LD_VAR 0 2
8805: PPUSH
8806: LD_INT 5
8808: PPUSH
8809: CALL_OW 120
// pom = UnitFilter ( RU_posily_na_utek , [ [ f_class , class_engineer ] ] ) ;
8813: LD_ADDR_VAR 0 2
8817: PUSH
8818: LD_EXP 56
8822: PPUSH
8823: LD_INT 25
8825: PUSH
8826: LD_INT 2
8828: PUSH
8829: EMPTY
8830: LIST
8831: LIST
8832: PUSH
8833: EMPTY
8834: LIST
8835: PPUSH
8836: CALL_OW 72
8840: ST_TO_ADDR
// ComEnterUnit ( pom , RU1_dep ) ;
8841: LD_VAR 0 2
8845: PPUSH
8846: LD_INT 1
8848: PPUSH
8849: CALL_OW 120
// Rusi_save = Rusi_save ^ [ RU1_sol1 , RU1_me3 , Ru1_sci2 , RU1_sci5 , RU1_sci3 , RU1_sol5 , RU1_eng1 ] ;
8853: LD_ADDR_EXP 41
8857: PUSH
8858: LD_EXP 41
8862: PUSH
8863: LD_INT 52
8865: PUSH
8866: LD_INT 51
8868: PUSH
8869: LD_INT 45
8871: PUSH
8872: LD_INT 48
8874: PUSH
8875: LD_INT 46
8877: PUSH
8878: LD_INT 55
8880: PUSH
8881: LD_INT 57
8883: PUSH
8884: EMPTY
8885: LIST
8886: LIST
8887: LIST
8888: LIST
8889: LIST
8890: LIST
8891: LIST
8892: ADD
8893: ST_TO_ADDR
// end ;
8894: PPOPN 2
8896: END
// export function posli_rusy_pryc ; var pom ; begin
8897: LD_INT 0
8899: PPUSH
8900: PPUSH
// SetLives ( Rusi_save , 800 ) ;
8901: LD_EXP 41
8905: PPUSH
8906: LD_INT 800
8908: PPUSH
8909: CALL_OW 234
// pom = split_ruske_jednotky ( Rusi_save ) ;
8913: LD_ADDR_VAR 0 2
8917: PUSH
8918: LD_EXP 41
8922: PPUSH
8923: CALL 8319 0 1
8927: ST_TO_ADDR
// ComExitBuilding ( Rusi_save ) ;
8928: LD_EXP 41
8932: PPUSH
8933: CALL_OW 122
// AddComMoveXY ( pom [ 1 ] , 110 , 45 ) ;
8937: LD_VAR 0 2
8941: PUSH
8942: LD_INT 1
8944: ARRAY
8945: PPUSH
8946: LD_INT 110
8948: PPUSH
8949: LD_INT 45
8951: PPUSH
8952: CALL_OW 171
// AddComMoveXY ( pom [ 2 ] , 103 , 60 ) ;
8956: LD_VAR 0 2
8960: PUSH
8961: LD_INT 2
8963: ARRAY
8964: PPUSH
8965: LD_INT 103
8967: PPUSH
8968: LD_INT 60
8970: PPUSH
8971: CALL_OW 171
// AddComMoveXY ( pom [ 3 ] , 76 , 80 ) ;
8975: LD_VAR 0 2
8979: PUSH
8980: LD_INT 3
8982: ARRAY
8983: PPUSH
8984: LD_INT 76
8986: PPUSH
8987: LD_INT 80
8989: PPUSH
8990: CALL_OW 171
// AddComMoveXY ( pom [ 4 ] , 53 , 1 ) ;
8994: LD_VAR 0 2
8998: PUSH
8999: LD_INT 4
9001: ARRAY
9002: PPUSH
9003: LD_INT 53
9005: PPUSH
9006: LD_INT 1
9008: PPUSH
9009: CALL_OW 171
// end ;
9013: LD_VAR 0 1
9017: RET
// export function posli_lidi_zpet_omicron ; var pom ; var pom1 , i ; begin
9018: LD_INT 0
9020: PPUSH
9021: PPUSH
9022: PPUSH
9023: PPUSH
// pom1 = [ ] ;
9024: LD_ADDR_VAR 0 3
9028: PUSH
9029: EMPTY
9030: ST_TO_ADDR
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_building ] , [ f_side , You ] ] ) ;
9031: LD_ADDR_VAR 0 2
9035: PUSH
9036: LD_INT 20
9038: PPUSH
9039: LD_INT 21
9041: PUSH
9042: LD_INT 3
9044: PUSH
9045: EMPTY
9046: LIST
9047: LIST
9048: PUSH
9049: LD_INT 22
9051: PUSH
9052: LD_EXP 1
9056: PUSH
9057: EMPTY
9058: LIST
9059: LIST
9060: PUSH
9061: EMPTY
9062: LIST
9063: LIST
9064: PPUSH
9065: CALL_OW 70
9069: ST_TO_ADDR
// for i in pom do
9070: LD_ADDR_VAR 0 4
9074: PUSH
9075: LD_VAR 0 2
9079: PUSH
9080: FOR_IN
9081: IFFALSE 9106
// pom1 = pom1 ^ UnitsInside ( i ) ;
9083: LD_ADDR_VAR 0 3
9087: PUSH
9088: LD_VAR 0 3
9092: PUSH
9093: LD_VAR 0 4
9097: PPUSH
9098: CALL_OW 313
9102: ADD
9103: ST_TO_ADDR
9104: GO 9080
9106: POP
9107: POP
// ComExitBuilding ( pom1 ) ;
9108: LD_VAR 0 3
9112: PPUSH
9113: CALL_OW 122
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_human ] , [ f_side , You ] ] ) ;
9117: LD_ADDR_VAR 0 2
9121: PUSH
9122: LD_INT 20
9124: PPUSH
9125: LD_INT 21
9127: PUSH
9128: LD_INT 1
9130: PUSH
9131: EMPTY
9132: LIST
9133: LIST
9134: PUSH
9135: LD_INT 22
9137: PUSH
9138: LD_EXP 1
9142: PUSH
9143: EMPTY
9144: LIST
9145: LIST
9146: PUSH
9147: EMPTY
9148: LIST
9149: LIST
9150: PPUSH
9151: CALL_OW 70
9155: ST_TO_ADDR
// pom1 = pom1 ^ pom ;
9156: LD_ADDR_VAR 0 3
9160: PUSH
9161: LD_VAR 0 3
9165: PUSH
9166: LD_VAR 0 2
9170: ADD
9171: ST_TO_ADDR
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_vehicle ] , [ f_side , You ] ] ) ;
9172: LD_ADDR_VAR 0 2
9176: PUSH
9177: LD_INT 20
9179: PPUSH
9180: LD_INT 21
9182: PUSH
9183: LD_INT 2
9185: PUSH
9186: EMPTY
9187: LIST
9188: LIST
9189: PUSH
9190: LD_INT 22
9192: PUSH
9193: LD_EXP 1
9197: PUSH
9198: EMPTY
9199: LIST
9200: LIST
9201: PUSH
9202: EMPTY
9203: LIST
9204: LIST
9205: PPUSH
9206: CALL_OW 70
9210: ST_TO_ADDR
// for i in pom do
9211: LD_ADDR_VAR 0 4
9215: PUSH
9216: LD_VAR 0 2
9220: PUSH
9221: FOR_IN
9222: IFFALSE 9274
// begin pom1 = pom ^ i ;
9224: LD_ADDR_VAR 0 3
9228: PUSH
9229: LD_VAR 0 2
9233: PUSH
9234: LD_VAR 0 4
9238: ADD
9239: ST_TO_ADDR
// if IsDrivenBy ( i ) then
9240: LD_VAR 0 4
9244: PPUSH
9245: CALL_OW 311
9249: IFFALSE 9272
// pom1 = pom1 ^ IsDrivenBy ( i ) ;
9251: LD_ADDR_VAR 0 3
9255: PUSH
9256: LD_VAR 0 3
9260: PUSH
9261: LD_VAR 0 4
9265: PPUSH
9266: CALL_OW 311
9270: ADD
9271: ST_TO_ADDR
// end ;
9272: GO 9221
9274: POP
9275: POP
// SetSide ( pom1 , You3 ) ;
9276: LD_VAR 0 3
9280: PPUSH
9281: LD_EXP 3
9285: PPUSH
9286: CALL_OW 235
// pom = FilterUnitsInArea ( Om_ven_1 , [ [ f_side , You3 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
9290: LD_ADDR_VAR 0 2
9294: PUSH
9295: LD_INT 29
9297: PPUSH
9298: LD_INT 22
9300: PUSH
9301: LD_EXP 3
9305: PUSH
9306: EMPTY
9307: LIST
9308: LIST
9309: PUSH
9310: LD_INT 2
9312: PUSH
9313: LD_INT 21
9315: PUSH
9316: LD_INT 2
9318: PUSH
9319: EMPTY
9320: LIST
9321: LIST
9322: PUSH
9323: LD_INT 21
9325: PUSH
9326: LD_INT 1
9328: PUSH
9329: EMPTY
9330: LIST
9331: LIST
9332: PUSH
9333: EMPTY
9334: LIST
9335: LIST
9336: LIST
9337: PUSH
9338: EMPTY
9339: LIST
9340: LIST
9341: PPUSH
9342: CALL_OW 70
9346: ST_TO_ADDR
// ComMoveXY ( pom , 79 , 16 ) ;
9347: LD_VAR 0 2
9351: PPUSH
9352: LD_INT 79
9354: PPUSH
9355: LD_INT 16
9357: PPUSH
9358: CALL_OW 111
// pom = FilterUnitsInArea ( Om_ven_2 , [ [ f_side , You3 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
9362: LD_ADDR_VAR 0 2
9366: PUSH
9367: LD_INT 30
9369: PPUSH
9370: LD_INT 22
9372: PUSH
9373: LD_EXP 3
9377: PUSH
9378: EMPTY
9379: LIST
9380: LIST
9381: PUSH
9382: LD_INT 2
9384: PUSH
9385: LD_INT 21
9387: PUSH
9388: LD_INT 2
9390: PUSH
9391: EMPTY
9392: LIST
9393: LIST
9394: PUSH
9395: LD_INT 21
9397: PUSH
9398: LD_INT 1
9400: PUSH
9401: EMPTY
9402: LIST
9403: LIST
9404: PUSH
9405: EMPTY
9406: LIST
9407: LIST
9408: LIST
9409: PUSH
9410: EMPTY
9411: LIST
9412: LIST
9413: PPUSH
9414: CALL_OW 70
9418: ST_TO_ADDR
// ComMoveXY ( pom , 67 , 40 ) ;
9419: LD_VAR 0 2
9423: PPUSH
9424: LD_INT 67
9426: PPUSH
9427: LD_INT 40
9429: PPUSH
9430: CALL_OW 111
// pom = FilterUnitsInArea ( Om_ven_3 , [ [ f_side , You3 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
9434: LD_ADDR_VAR 0 2
9438: PUSH
9439: LD_INT 31
9441: PPUSH
9442: LD_INT 22
9444: PUSH
9445: LD_EXP 3
9449: PUSH
9450: EMPTY
9451: LIST
9452: LIST
9453: PUSH
9454: LD_INT 2
9456: PUSH
9457: LD_INT 21
9459: PUSH
9460: LD_INT 2
9462: PUSH
9463: EMPTY
9464: LIST
9465: LIST
9466: PUSH
9467: LD_INT 21
9469: PUSH
9470: LD_INT 1
9472: PUSH
9473: EMPTY
9474: LIST
9475: LIST
9476: PUSH
9477: EMPTY
9478: LIST
9479: LIST
9480: LIST
9481: PUSH
9482: EMPTY
9483: LIST
9484: LIST
9485: PPUSH
9486: CALL_OW 70
9490: ST_TO_ADDR
// ComMoveXY ( pom , 58 , 52 ) ;
9491: LD_VAR 0 2
9495: PPUSH
9496: LD_INT 58
9498: PPUSH
9499: LD_INT 52
9501: PPUSH
9502: CALL_OW 111
// end ;
9506: LD_VAR 0 1
9510: RET
// export function get_lidi_popov_area ; var pom , i ; var drv ; var a ; begin
9511: LD_INT 0
9513: PPUSH
9514: PPUSH
9515: PPUSH
9516: PPUSH
9517: PPUSH
// a = [ ] ;
9518: LD_ADDR_VAR 0 5
9522: PUSH
9523: EMPTY
9524: ST_TO_ADDR
// pom = FilterUnitsInArea ( Pop_area , [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
9525: LD_ADDR_VAR 0 2
9529: PUSH
9530: LD_INT 15
9532: PPUSH
9533: LD_INT 22
9535: PUSH
9536: LD_EXP 1
9540: PUSH
9541: EMPTY
9542: LIST
9543: LIST
9544: PUSH
9545: LD_INT 21
9547: PUSH
9548: LD_INT 1
9550: PUSH
9551: EMPTY
9552: LIST
9553: LIST
9554: PUSH
9555: EMPTY
9556: LIST
9557: LIST
9558: PPUSH
9559: CALL_OW 70
9563: ST_TO_ADDR
// a = pom ;
9564: LD_ADDR_VAR 0 5
9568: PUSH
9569: LD_VAR 0 2
9573: ST_TO_ADDR
// pom = FilterUnitsInArea ( Pop_area , [ [ f_side , You ] , [ f_type , unit_vehicle ] ] ) ;
9574: LD_ADDR_VAR 0 2
9578: PUSH
9579: LD_INT 15
9581: PPUSH
9582: LD_INT 22
9584: PUSH
9585: LD_EXP 1
9589: PUSH
9590: EMPTY
9591: LIST
9592: LIST
9593: PUSH
9594: LD_INT 21
9596: PUSH
9597: LD_INT 2
9599: PUSH
9600: EMPTY
9601: LIST
9602: LIST
9603: PUSH
9604: EMPTY
9605: LIST
9606: LIST
9607: PPUSH
9608: CALL_OW 70
9612: ST_TO_ADDR
// for i in pom do
9613: LD_ADDR_VAR 0 3
9617: PUSH
9618: LD_VAR 0 2
9622: PUSH
9623: FOR_IN
9624: IFFALSE 9682
// begin drv = IsDrivenBy ( i ) ;
9626: LD_ADDR_VAR 0 4
9630: PUSH
9631: LD_VAR 0 3
9635: PPUSH
9636: CALL_OW 311
9640: ST_TO_ADDR
// if ( not ( drv in a ) ) and ( drv <> 0 ) then
9641: LD_VAR 0 4
9645: PUSH
9646: LD_VAR 0 5
9650: IN
9651: NOT
9652: PUSH
9653: LD_VAR 0 4
9657: PUSH
9658: LD_INT 0
9660: NONEQUAL
9661: AND
9662: IFFALSE 9680
// a = a ^ drv ;
9664: LD_ADDR_VAR 0 5
9668: PUSH
9669: LD_VAR 0 5
9673: PUSH
9674: LD_VAR 0 4
9678: ADD
9679: ST_TO_ADDR
// end ;
9680: GO 9623
9682: POP
9683: POP
// result := a ;
9684: LD_ADDR_VAR 0 1
9688: PUSH
9689: LD_VAR 0 5
9693: ST_TO_ADDR
// end ;
9694: LD_VAR 0 1
9698: RET
// export function totalni_ukonceni_mise_v_ingame_videu ; var pom ; begin
9699: LD_INT 0
9701: PPUSH
9702: PPUSH
// InGameOn ;
9703: CALL_OW 8
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
9707: LD_ADDR_VAR 0 2
9711: PUSH
9712: LD_INT 22
9714: PUSH
9715: LD_EXP 1
9719: PUSH
9720: EMPTY
9721: LIST
9722: LIST
9723: PUSH
9724: LD_INT 2
9726: PUSH
9727: LD_INT 21
9729: PUSH
9730: LD_INT 2
9732: PUSH
9733: EMPTY
9734: LIST
9735: LIST
9736: PUSH
9737: LD_INT 21
9739: PUSH
9740: LD_INT 1
9742: PUSH
9743: EMPTY
9744: LIST
9745: LIST
9746: PUSH
9747: EMPTY
9748: LIST
9749: LIST
9750: LIST
9751: PUSH
9752: EMPTY
9753: LIST
9754: LIST
9755: PPUSH
9756: CALL_OW 69
9760: ST_TO_ADDR
// McMove ( 10 , pom , [ [ 108 , 70 ] , [ 77 , 65 ] , [ 53 , 63 ] , [ 40 , 64 ] , [ 51 , 97 ] ] , [ mc_no_stop , mc_move_dontcapture ] ) ;
9761: LD_INT 10
9763: PPUSH
9764: LD_VAR 0 2
9768: PPUSH
9769: LD_INT 108
9771: PUSH
9772: LD_INT 70
9774: PUSH
9775: EMPTY
9776: LIST
9777: LIST
9778: PUSH
9779: LD_INT 77
9781: PUSH
9782: LD_INT 65
9784: PUSH
9785: EMPTY
9786: LIST
9787: LIST
9788: PUSH
9789: LD_INT 53
9791: PUSH
9792: LD_INT 63
9794: PUSH
9795: EMPTY
9796: LIST
9797: LIST
9798: PUSH
9799: LD_INT 40
9801: PUSH
9802: LD_INT 64
9804: PUSH
9805: EMPTY
9806: LIST
9807: LIST
9808: PUSH
9809: LD_INT 51
9811: PUSH
9812: LD_INT 97
9814: PUSH
9815: EMPTY
9816: LIST
9817: LIST
9818: PUSH
9819: EMPTY
9820: LIST
9821: LIST
9822: LIST
9823: LIST
9824: LIST
9825: PPUSH
9826: LD_INT 10
9828: PUSH
9829: LD_INT 5
9831: PUSH
9832: EMPTY
9833: LIST
9834: LIST
9835: PPUSH
9836: CALL_OW 398
// pom = FilterAllUnits ( [ [ f_side , You2 ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
9840: LD_ADDR_VAR 0 2
9844: PUSH
9845: LD_INT 22
9847: PUSH
9848: LD_EXP 2
9852: PUSH
9853: EMPTY
9854: LIST
9855: LIST
9856: PUSH
9857: LD_INT 2
9859: PUSH
9860: LD_INT 21
9862: PUSH
9863: LD_INT 2
9865: PUSH
9866: EMPTY
9867: LIST
9868: LIST
9869: PUSH
9870: LD_INT 21
9872: PUSH
9873: LD_INT 1
9875: PUSH
9876: EMPTY
9877: LIST
9878: LIST
9879: PUSH
9880: EMPTY
9881: LIST
9882: LIST
9883: LIST
9884: PUSH
9885: EMPTY
9886: LIST
9887: LIST
9888: PPUSH
9889: CALL_OW 69
9893: ST_TO_ADDR
// McMove ( 10 , pom , [ [ 108 , 70 ] , [ 77 , 65 ] , [ 53 , 63 ] , [ 40 , 64 ] , [ 51 , 97 ] ] , [ mc_no_stop , mc_move_dontcapture ] ) ;
9894: LD_INT 10
9896: PPUSH
9897: LD_VAR 0 2
9901: PPUSH
9902: LD_INT 108
9904: PUSH
9905: LD_INT 70
9907: PUSH
9908: EMPTY
9909: LIST
9910: LIST
9911: PUSH
9912: LD_INT 77
9914: PUSH
9915: LD_INT 65
9917: PUSH
9918: EMPTY
9919: LIST
9920: LIST
9921: PUSH
9922: LD_INT 53
9924: PUSH
9925: LD_INT 63
9927: PUSH
9928: EMPTY
9929: LIST
9930: LIST
9931: PUSH
9932: LD_INT 40
9934: PUSH
9935: LD_INT 64
9937: PUSH
9938: EMPTY
9939: LIST
9940: LIST
9941: PUSH
9942: LD_INT 51
9944: PUSH
9945: LD_INT 97
9947: PUSH
9948: EMPTY
9949: LIST
9950: LIST
9951: PUSH
9952: EMPTY
9953: LIST
9954: LIST
9955: LIST
9956: LIST
9957: LIST
9958: PPUSH
9959: LD_INT 10
9961: PUSH
9962: LD_INT 5
9964: PUSH
9965: EMPTY
9966: LIST
9967: LIST
9968: PPUSH
9969: CALL_OW 398
// enable ( 7 ) ;
9973: LD_INT 7
9975: ENABLE_MARKED
// wait ( 0 0$10 ) ;
9976: LD_INT 350
9978: PPUSH
9979: CALL_OW 67
// InGameOff ;
9983: CALL_OW 9
// konec_mise ;
9987: CALL 2900 0 0
// end ;
9991: LD_VAR 0 1
9995: RET
// export function schovej_kurina ; begin
9996: LD_INT 0
9998: PPUSH
// ComEnterUnit ( kur , RU1_dep ) ;
9999: LD_EXP 25
10003: PPUSH
10004: LD_INT 1
10006: PPUSH
10007: CALL_OW 120
// end ;
10011: LD_VAR 0 1
10015: RET
// export function posli_kurina_na_smrt ; begin
10016: LD_INT 0
10018: PPUSH
// ComExitBuilding ( kur ) ;
10019: LD_EXP 25
10023: PPUSH
10024: CALL_OW 122
// end ;
10028: LD_VAR 0 1
10032: RET
// every 0 0$2 do var pom ; var i ;
10033: GO 10035
10035: DISABLE
10036: LD_INT 0
10038: PPUSH
10039: PPUSH
// begin pom = FilterUnitsExceptArea ( Om_ven , [ [ f_side , You3 ] ] ) ;
10040: LD_ADDR_VAR 0 1
10044: PUSH
10045: LD_INT 20
10047: PPUSH
10048: LD_INT 22
10050: PUSH
10051: LD_EXP 3
10055: PUSH
10056: EMPTY
10057: LIST
10058: LIST
10059: PUSH
10060: EMPTY
10061: LIST
10062: PPUSH
10063: CALL_OW 71
10067: ST_TO_ADDR
// for i in pom do
10068: LD_ADDR_VAR 0 2
10072: PUSH
10073: LD_VAR 0 1
10077: PUSH
10078: FOR_IN
10079: IFFALSE 10142
// begin if GetType ( i ) = unit_vehicle then
10081: LD_VAR 0 2
10085: PPUSH
10086: CALL_OW 247
10090: PUSH
10091: LD_INT 2
10093: EQUAL
10094: IFFALSE 10126
// if IsDrivenBy ( i ) then
10096: LD_VAR 0 2
10100: PPUSH
10101: CALL_OW 311
10105: IFFALSE 10126
// SetSide ( IsDrivenBy ( i ) , You ) ;
10107: LD_VAR 0 2
10111: PPUSH
10112: CALL_OW 311
10116: PPUSH
10117: LD_EXP 1
10121: PPUSH
10122: CALL_OW 235
// SetSide ( i , You ) ;
10126: LD_VAR 0 2
10130: PPUSH
10131: LD_EXP 1
10135: PPUSH
10136: CALL_OW 235
// end ;
10140: GO 10078
10142: POP
10143: POP
// enable ;
10144: ENABLE
// end ;
10145: PPOPN 2
10147: END
// every 0 0$1 marked 9 do var i ; var ridici ; var mcm ;
10148: GO 10150
10150: DISABLE
10151: LD_INT 0
10153: PPUSH
10154: PPUSH
10155: PPUSH
// begin ridici = [ ] ;
10156: LD_ADDR_VAR 0 2
10160: PUSH
10161: EMPTY
10162: ST_TO_ADDR
// for i in RUSI_CERPACI_AUTA_LIST do
10163: LD_ADDR_VAR 0 1
10167: PUSH
10168: LD_EXP 57
10172: PUSH
10173: FOR_IN
10174: IFFALSE 10214
// begin PlaceUnitArea ( i , Enterposil , false ) ;
10176: LD_VAR 0 1
10180: PPUSH
10181: LD_INT 49
10183: PPUSH
10184: LD_INT 0
10186: PPUSH
10187: CALL_OW 49
// ridici = ridici ^ IsDrivenBy ( i ) ;
10191: LD_ADDR_VAR 0 2
10195: PUSH
10196: LD_VAR 0 2
10200: PUSH
10201: LD_VAR 0 1
10205: PPUSH
10206: CALL_OW 311
10210: ADD
10211: ST_TO_ADDR
// end ;
10212: GO 10173
10214: POP
10215: POP
// mcm = McMove ( 10 , RUSI_CERPACI_AUTA_LIST , [ [ 130 , 75 ] , [ 112 , 59 ] , [ 106 , 32 ] , [ 91 , 21 ] , [ 62 , 9 ] ] , [ mc_move_waitwp ] ) ;
10216: LD_ADDR_VAR 0 3
10220: PUSH
10221: LD_INT 10
10223: PPUSH
10224: LD_EXP 57
10228: PPUSH
10229: LD_INT 130
10231: PUSH
10232: LD_INT 75
10234: PUSH
10235: EMPTY
10236: LIST
10237: LIST
10238: PUSH
10239: LD_INT 112
10241: PUSH
10242: LD_INT 59
10244: PUSH
10245: EMPTY
10246: LIST
10247: LIST
10248: PUSH
10249: LD_INT 106
10251: PUSH
10252: LD_INT 32
10254: PUSH
10255: EMPTY
10256: LIST
10257: LIST
10258: PUSH
10259: LD_INT 91
10261: PUSH
10262: LD_INT 21
10264: PUSH
10265: EMPTY
10266: LIST
10267: LIST
10268: PUSH
10269: LD_INT 62
10271: PUSH
10272: LD_INT 9
10274: PUSH
10275: EMPTY
10276: LIST
10277: LIST
10278: PUSH
10279: EMPTY
10280: LIST
10281: LIST
10282: LIST
10283: LIST
10284: LIST
10285: PPUSH
10286: LD_INT 3
10288: PUSH
10289: EMPTY
10290: LIST
10291: PPUSH
10292: CALL_OW 398
10296: ST_TO_ADDR
// while UnitFilter ( RUSI_CERPACI_AUTA_LIST , [ [ f_inarea , benzina ] ] ) <> RUSI_CERPACI_AUTA_LIST do
10297: LD_EXP 57
10301: PPUSH
10302: LD_INT 95
10304: PUSH
10305: LD_INT 48
10307: PUSH
10308: EMPTY
10309: LIST
10310: LIST
10311: PUSH
10312: EMPTY
10313: LIST
10314: PPUSH
10315: CALL_OW 72
10319: PUSH
10320: LD_EXP 57
10324: NONEQUAL
10325: IFFALSE 10360
// begin KillMc ( mcm ) ;
10327: LD_VAR 0 3
10331: PPUSH
10332: CALL_OW 387
// wait ( 0 0$2 ) ;
10336: LD_INT 70
10338: PPUSH
10339: CALL_OW 67
// ComMoveXY ( RUSI_CERPACI_AUTA_LIST , 62 , 9 ) ;
10343: LD_EXP 57
10347: PPUSH
10348: LD_INT 62
10350: PPUSH
10351: LD_INT 9
10353: PPUSH
10354: CALL_OW 111
// end ;
10358: GO 10297
// hint_cerpaci_auta ;
10360: CALL 17323 0 0
// ComExitVehicle ( ridici ) ;
10364: LD_VAR 0 2
10368: PPUSH
10369: CALL_OW 121
// AddComAgressiveMove ( ridici , 45 , 6 ) ;
10373: LD_VAR 0 2
10377: PPUSH
10378: LD_INT 45
10380: PPUSH
10381: LD_INT 6
10383: PPUSH
10384: CALL_OW 174
// AddComAgressiveMove ( ridici , 15 , 10 ) ;
10388: LD_VAR 0 2
10392: PPUSH
10393: LD_INT 15
10395: PPUSH
10396: LD_INT 10
10398: PPUSH
10399: CALL_OW 174
// AddComAttackUnit ( ridici , Am_dep ) ;
10403: LD_VAR 0 2
10407: PPUSH
10408: LD_INT 12
10410: PPUSH
10411: CALL_OW 175
// end ;
10415: PPOPN 3
10417: END
// every 0 0$2 do var pom , i ; var ridic ;
10418: GO 10420
10420: DISABLE
10421: LD_INT 0
10423: PPUSH
10424: PPUSH
10425: PPUSH
// begin pom = FilterUnitsInArea ( Cauta , [ [ f_side , You2 ] , [ f_weapon , ru_cargo_bay ] ] ) ;
10426: LD_ADDR_VAR 0 1
10430: PUSH
10431: LD_INT 39
10433: PPUSH
10434: LD_INT 22
10436: PUSH
10437: LD_EXP 2
10441: PUSH
10442: EMPTY
10443: LIST
10444: LIST
10445: PUSH
10446: LD_INT 34
10448: PUSH
10449: LD_INT 51
10451: PUSH
10452: EMPTY
10453: LIST
10454: LIST
10455: PUSH
10456: EMPTY
10457: LIST
10458: LIST
10459: PPUSH
10460: CALL_OW 70
10464: ST_TO_ADDR
// if pom > 0 then
10465: LD_VAR 0 1
10469: PUSH
10470: LD_INT 0
10472: GREATER
10473: IFFALSE 10494
// begin if not qrefuel_over then
10475: LD_LOC 20
10479: NOT
10480: IFFALSE 10494
// begin qrefuel_over = true ;
10482: LD_ADDR_LOC 20
10486: PUSH
10487: LD_INT 1
10489: ST_TO_ADDR
// query_refuel ;
10490: CALL 17241 0 0
// end ; end ; for i in pom do
10494: LD_ADDR_VAR 0 2
10498: PUSH
10499: LD_VAR 0 1
10503: PUSH
10504: FOR_IN
10505: IFFALSE 10559
// if IsDrivenBy ( i ) then
10507: LD_VAR 0 2
10511: PPUSH
10512: CALL_OW 311
10516: IFFALSE 10557
// begin ridic = IsDrivenBy ( i ) ;
10518: LD_ADDR_VAR 0 3
10522: PUSH
10523: LD_VAR 0 2
10527: PPUSH
10528: CALL_OW 311
10532: ST_TO_ADDR
// ComExitVehicle ( ridic ) ;
10533: LD_VAR 0 3
10537: PPUSH
10538: CALL_OW 121
// AddComAgressiveMove ( ridic , 21 , 14 ) ;
10542: LD_VAR 0 3
10546: PPUSH
10547: LD_INT 21
10549: PPUSH
10550: LD_INT 14
10552: PPUSH
10553: CALL_OW 174
// end ;
10557: GO 10504
10559: POP
10560: POP
// enable ;
10561: ENABLE
// end ;
10562: PPOPN 3
10564: END
// on VehicleConstructed ( v , fact ) do begin postavenych_aut = postavenych_aut + 1 ;
10565: LD_ADDR_EXP 45
10569: PUSH
10570: LD_EXP 45
10574: PUSH
10575: LD_INT 1
10577: PLUS
10578: ST_TO_ADDR
// enable ;
10579: ENABLE
// end ;
10580: PPOPN 2
10582: END
// every 0 0$1 marked 51 do
10583: GO 10585
10585: DISABLE
// begin if konec_counteru then
10586: LD_EXP 43
10590: IFFALSE 10601
// begin display_strings = [ ] ;
10592: LD_ADDR_OWVAR 47
10596: PUSH
10597: EMPTY
10598: ST_TO_ADDR
// exit ;
10599: GO 10652
// end ; display_strings = [ #Ru03-1 , TTime ] ;
10601: LD_ADDR_OWVAR 47
10605: PUSH
10606: LD_STRING #Ru03-1
10608: PUSH
10609: LD_LOC 21
10613: PUSH
10614: EMPTY
10615: LIST
10616: LIST
10617: ST_TO_ADDR
// TTime = TTime - 0 0$1 ;
10618: LD_ADDR_LOC 21
10622: PUSH
10623: LD_LOC 21
10627: PUSH
10628: LD_INT 35
10630: MINUS
10631: ST_TO_ADDR
// if TTime > 0 then
10632: LD_LOC 21
10636: PUSH
10637: LD_INT 0
10639: GREATER
10640: IFFALSE 10645
// enable else
10642: ENABLE
10643: GO 10652
// display_strings = [ ] ;
10645: LD_ADDR_OWVAR 47
10649: PUSH
10650: EMPTY
10651: ST_TO_ADDR
// end ;
10652: END
// every 0 0$1 marked 52 do
10653: GO 10655
10655: DISABLE
// begin if konec_counteru then
10656: LD_EXP 43
10660: IFFALSE 10671
// begin display_strings = [ ] ;
10662: LD_ADDR_OWVAR 47
10666: PUSH
10667: EMPTY
10668: ST_TO_ADDR
// exit ;
10669: GO 10722
// end ; display_strings = [ #Ru03-2 , TTime ] ;
10671: LD_ADDR_OWVAR 47
10675: PUSH
10676: LD_STRING #Ru03-2
10678: PUSH
10679: LD_LOC 21
10683: PUSH
10684: EMPTY
10685: LIST
10686: LIST
10687: ST_TO_ADDR
// TTime = TTime - 0 0$1 ;
10688: LD_ADDR_LOC 21
10692: PUSH
10693: LD_LOC 21
10697: PUSH
10698: LD_INT 35
10700: MINUS
10701: ST_TO_ADDR
// if TTime > 0 then
10702: LD_LOC 21
10706: PUSH
10707: LD_INT 0
10709: GREATER
10710: IFFALSE 10715
// enable else
10712: ENABLE
10713: GO 10722
// display_strings = [ ] ;
10715: LD_ADDR_OWVAR 47
10719: PUSH
10720: EMPTY
10721: ST_TO_ADDR
// end ;
10722: END
// every 0 0$1 marked 53 do
10723: GO 10725
10725: DISABLE
// begin if konec_counteru then
10726: LD_EXP 43
10730: IFFALSE 10741
// begin display_strings = [ ] ;
10732: LD_ADDR_OWVAR 47
10736: PUSH
10737: EMPTY
10738: ST_TO_ADDR
// exit ;
10739: GO 10792
// end ; display_strings = [ #Ru03-3 , TTime ] ;
10741: LD_ADDR_OWVAR 47
10745: PUSH
10746: LD_STRING #Ru03-3
10748: PUSH
10749: LD_LOC 21
10753: PUSH
10754: EMPTY
10755: LIST
10756: LIST
10757: ST_TO_ADDR
// TTime = TTime - 0 0$1 ;
10758: LD_ADDR_LOC 21
10762: PUSH
10763: LD_LOC 21
10767: PUSH
10768: LD_INT 35
10770: MINUS
10771: ST_TO_ADDR
// if TTime > 0 then
10772: LD_LOC 21
10776: PUSH
10777: LD_INT 0
10779: GREATER
10780: IFFALSE 10785
// enable else
10782: ENABLE
10783: GO 10792
// display_strings = [ ] ;
10785: LD_ADDR_OWVAR 47
10789: PUSH
10790: EMPTY
10791: ST_TO_ADDR
// end ;
10792: END
// export function zastaveni_rusaku ; var pom ; begin
10793: LD_INT 0
10795: PPUSH
10796: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ) ;
10797: LD_ADDR_VAR 0 2
10801: PUSH
10802: LD_INT 22
10804: PUSH
10805: LD_EXP 1
10809: PUSH
10810: EMPTY
10811: LIST
10812: LIST
10813: PUSH
10814: LD_INT 2
10816: PUSH
10817: LD_INT 21
10819: PUSH
10820: LD_INT 2
10822: PUSH
10823: EMPTY
10824: LIST
10825: LIST
10826: PUSH
10827: LD_INT 21
10829: PUSH
10830: LD_INT 1
10832: PUSH
10833: EMPTY
10834: LIST
10835: LIST
10836: PUSH
10837: EMPTY
10838: LIST
10839: LIST
10840: LIST
10841: PUSH
10842: EMPTY
10843: LIST
10844: LIST
10845: PPUSH
10846: CALL_OW 69
10850: ST_TO_ADDR
// ComStand ( pom ) ;
10851: LD_VAR 0 2
10855: PPUSH
10856: CALL_OW 165
// end ; end_of_file
10860: LD_VAR 0 1
10864: RET
// export konstanta_utoceni ; var hint_bw ; every 0 0$0.1 do
10865: GO 10867
10867: DISABLE
// begin konstanta_utoceni = 0 ;
10868: LD_ADDR_EXP 47
10872: PUSH
10873: LD_INT 0
10875: ST_TO_ADDR
// hint_bw = false ;
10876: LD_ADDR_LOC 22
10880: PUSH
10881: LD_INT 0
10883: ST_TO_ADDR
// end ;
10884: END
// export function uvodni_pokec ; var vyber ; begin
10885: LD_INT 0
10887: PPUSH
10888: PPUSH
// wait ( 0 0$2 ) ;
10889: LD_INT 70
10891: PPUSH
10892: CALL_OW 67
// ComTurnUnit ( bur , kur ) ;
10896: LD_EXP 27
10900: PPUSH
10901: LD_EXP 25
10905: PPUSH
10906: CALL_OW 119
// ComTurnUnit ( kur , bur ) ;
10910: LD_EXP 25
10914: PPUSH
10915: LD_EXP 27
10919: PPUSH
10920: CALL_OW 119
// if BELKOV_SAVED then
10924: LD_EXP 22
10928: IFFALSE 10968
// begin Say ( kur , D1b-Kur-1 ) ;
10930: LD_EXP 25
10934: PPUSH
10935: LD_STRING D1b-Kur-1
10937: PPUSH
10938: CALL_OW 88
// Say ( bel , D1b-Bel-1 ) ;
10942: LD_EXP 30
10946: PPUSH
10947: LD_STRING D1b-Bel-1
10949: PPUSH
10950: CALL_OW 88
// Say ( kur , D1b-Kur-2 ) ;
10954: LD_EXP 25
10958: PPUSH
10959: LD_STRING D1b-Kur-2
10961: PPUSH
10962: CALL_OW 88
// end else
10966: GO 11052
// begin Say ( kur , D1a-Kur-1 ) ;
10968: LD_EXP 25
10972: PPUSH
10973: LD_STRING D1a-Kur-1
10975: PPUSH
10976: CALL_OW 88
// Say ( bur , D1a-Bur-1 ) ;
10980: LD_EXP 27
10984: PPUSH
10985: LD_STRING D1a-Bur-1
10987: PPUSH
10988: CALL_OW 88
// if STAV_UTOKU = 3 then
10992: LD_EXP 23
10996: PUSH
10997: LD_INT 3
10999: EQUAL
11000: IFFALSE 11016
// Say ( kur , D1a-Kur-2a ) else
11002: LD_EXP 25
11006: PPUSH
11007: LD_STRING D1a-Kur-2a
11009: PPUSH
11010: CALL_OW 88
11014: GO 11028
// Say ( kur , D1a-Kur-2 ) ;
11016: LD_EXP 25
11020: PPUSH
11021: LD_STRING D1a-Kur-2
11023: PPUSH
11024: CALL_OW 88
// Say ( kur , D1a-Kur-2b ) ;
11028: LD_EXP 25
11032: PPUSH
11033: LD_STRING D1a-Kur-2b
11035: PPUSH
11036: CALL_OW 88
// Say ( bur , D1a-Bur-2 ) ;
11040: LD_EXP 27
11044: PPUSH
11045: LD_STRING D1a-Bur-2
11047: PPUSH
11048: CALL_OW 88
// end ; Say ( kur , D2-Kur-1 ) ;
11052: LD_EXP 25
11056: PPUSH
11057: LD_STRING D2-Kur-1
11059: PPUSH
11060: CALL_OW 88
// Say ( bur , D2-Bur-1 ) ;
11064: LD_EXP 27
11068: PPUSH
11069: LD_STRING D2-Bur-1
11071: PPUSH
11072: CALL_OW 88
// Say ( kur , D2-Kur-2 ) ;
11076: LD_EXP 25
11080: PPUSH
11081: LD_STRING D2-Kur-2
11083: PPUSH
11084: CALL_OW 88
// Say ( bur , D2-Bur-2 ) ;
11088: LD_EXP 27
11092: PPUSH
11093: LD_STRING D2-Bur-2
11095: PPUSH
11096: CALL_OW 88
// Say ( kur , D2-Kur-3 ) ;
11100: LD_EXP 25
11104: PPUSH
11105: LD_STRING D2-Kur-3
11107: PPUSH
11108: CALL_OW 88
// Say ( pop , D2-Pop-3 ) ;
11112: LD_EXP 26
11116: PPUSH
11117: LD_STRING D2-Pop-3
11119: PPUSH
11120: CALL_OW 88
// Say ( kur , D2-Kur-4 ) ;
11124: LD_EXP 25
11128: PPUSH
11129: LD_STRING D2-Kur-4
11131: PPUSH
11132: CALL_OW 88
// Say ( bur , D2-Bur-4 ) ;
11136: LD_EXP 27
11140: PPUSH
11141: LD_STRING D2-Bur-4
11143: PPUSH
11144: CALL_OW 88
// Say ( kur , D2-Kur-5 ) ;
11148: LD_EXP 25
11152: PPUSH
11153: LD_STRING D2-Kur-5
11155: PPUSH
11156: CALL_OW 88
// Say ( bur , D2-Bur-5 ) ;
11160: LD_EXP 27
11164: PPUSH
11165: LD_STRING D2-Bur-5
11167: PPUSH
11168: CALL_OW 88
// Say ( kur , D2-Kur-6 ) ;
11172: LD_EXP 25
11176: PPUSH
11177: LD_STRING D2-Kur-6
11179: PPUSH
11180: CALL_OW 88
// vyber = vyber_characteru ;
11184: LD_ADDR_VAR 0 2
11188: PUSH
11189: CALL 4351 0 0
11193: ST_TO_ADDR
// if bel in vyber then
11194: LD_EXP 30
11198: PUSH
11199: LD_VAR 0 2
11203: IN
11204: IFFALSE 11217
// RemoveUnit ( bel ) else
11206: LD_EXP 30
11210: PPUSH
11211: CALL_OW 64
11215: GO 11231
// Setside ( bel , You2 ) ;
11217: LD_EXP 30
11221: PPUSH
11222: LD_EXP 2
11226: PPUSH
11227: CALL_OW 235
// if IsOK ( kov ) then
11231: LD_EXP 28
11235: PPUSH
11236: CALL_OW 302
11240: IFFALSE 11251
// RemoveUnit ( kov ) ;
11242: LD_EXP 28
11246: PPUSH
11247: CALL_OW 64
// if IsOK ( gny ) then
11251: LD_EXP 29
11255: PPUSH
11256: CALL_OW 302
11260: IFFALSE 11271
// RemoveUnit ( gny ) ;
11262: LD_EXP 29
11266: PPUSH
11267: CALL_OW 64
// RemoveUnit ( bur ) ;
11271: LD_EXP 27
11275: PPUSH
11276: CALL_OW 64
// prebarveni_druhe_baze ;
11280: CALL 6765 0 0
// ChangeSideFog ( You3 , You ) ;
11284: LD_EXP 3
11288: PPUSH
11289: LD_EXP 1
11293: PPUSH
11294: CALL_OW 343
// placni_unity ( vyber ) ;
11298: LD_VAR 0 2
11302: PPUSH
11303: CALL 5108 0 1
// CenterOnUnits ( vyber ) ;
11307: LD_VAR 0 2
11311: PPUSH
11312: CALL_OW 85
// RevealFogArea ( You , Wth ) ;
11316: LD_EXP 1
11320: PPUSH
11321: LD_INT 24
11323: PPUSH
11324: CALL_OW 332
// wait ( 0 0$2 ) ;
11328: LD_INT 70
11330: PPUSH
11331: CALL_OW 67
// ChangeMissionObjectives ( M1 ) ;
11335: LD_STRING M1
11337: PPUSH
11338: CALL_OW 337
// hint_bw = true ;
11342: LD_ADDR_LOC 22
11346: PUSH
11347: LD_INT 1
11349: ST_TO_ADDR
// Hint ( Oil ) ;
11350: LD_STRING Oil
11352: PPUSH
11353: CALL_OW 339
// Hint ( Upgrading ) ;
11357: LD_STRING Upgrading
11359: PPUSH
11360: CALL_OW 339
// InGameOff ;
11364: CALL_OW 9
// end ;
11368: LD_VAR 0 1
11372: RET
// every 0 0$1 trigger GetResourceVisibility ( 57 , 89 , You ) > 0 do
11373: LD_INT 57
11375: PPUSH
11376: LD_INT 89
11378: PPUSH
11379: LD_EXP 1
11383: PPUSH
11384: CALL_OW 440
11388: PUSH
11389: LD_INT 0
11391: GREATER
11392: IFFALSE 11470
11394: GO 11396
11396: DISABLE
// begin CenterOnXY ( 57 , 89 ) ;
11397: LD_INT 57
11399: PPUSH
11400: LD_INT 89
11402: PPUSH
11403: CALL_OW 84
// DialogueOn ;
11407: CALL_OW 6
// interface_hidden := true ;
11411: LD_ADDR_OWVAR 54
11415: PUSH
11416: LD_INT 1
11418: ST_TO_ADDR
// Say ( bur , D2a-Bur-1 ) ;
11419: LD_EXP 27
11423: PPUSH
11424: LD_STRING D2a-Bur-1
11426: PPUSH
11427: CALL_OW 88
// SayRadio ( kur , D2a-Kur-1 ) ;
11431: LD_EXP 25
11435: PPUSH
11436: LD_STRING D2a-Kur-1
11438: PPUSH
11439: CALL_OW 94
// RU_videl_oil = true ;
11443: LD_ADDR_EXP 38
11447: PUSH
11448: LD_INT 1
11450: ST_TO_ADDR
// interface_hidden := false ;
11451: LD_ADDR_OWVAR 54
11455: PUSH
11456: LD_INT 0
11458: ST_TO_ADDR
// Hint ( OilSpoted ) ;
11459: LD_STRING OilSpoted
11461: PPUSH
11462: CALL_OW 339
// DialogueOff ;
11466: CALL_OW 7
// end ;
11470: END
// every 0 0$3 trigger RU_videl_oil and FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 1 do var pom , pom1 ; var i ;
11471: LD_EXP 38
11475: PUSH
11476: LD_INT 22
11478: PUSH
11479: LD_EXP 1
11483: PUSH
11484: EMPTY
11485: LIST
11486: LIST
11487: PUSH
11488: LD_INT 30
11490: PUSH
11491: LD_INT 0
11493: PUSH
11494: EMPTY
11495: LIST
11496: LIST
11497: PUSH
11498: EMPTY
11499: LIST
11500: LIST
11501: PPUSH
11502: CALL_OW 69
11506: PUSH
11507: LD_INT 1
11509: GREATER
11510: AND
11511: IFFALSE 11675
11513: GO 11515
11515: DISABLE
11516: LD_INT 0
11518: PPUSH
11519: PPUSH
11520: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) ;
11521: LD_ADDR_VAR 0 1
11525: PUSH
11526: LD_INT 22
11528: PUSH
11529: LD_EXP 1
11533: PUSH
11534: EMPTY
11535: LIST
11536: LIST
11537: PUSH
11538: LD_INT 30
11540: PUSH
11541: LD_INT 0
11543: PUSH
11544: EMPTY
11545: LIST
11546: LIST
11547: PUSH
11548: EMPTY
11549: LIST
11550: LIST
11551: PPUSH
11552: CALL_OW 69
11556: ST_TO_ADDR
// pom1 = [ ] ;
11557: LD_ADDR_VAR 0 2
11561: PUSH
11562: EMPTY
11563: ST_TO_ADDR
// for i in pom do
11564: LD_ADDR_VAR 0 3
11568: PUSH
11569: LD_VAR 0 1
11573: PUSH
11574: FOR_IN
11575: IFFALSE 11616
// if GetDistUnitXY ( i , 56 , 88 ) < 30 then
11577: LD_VAR 0 3
11581: PPUSH
11582: LD_INT 56
11584: PPUSH
11585: LD_INT 88
11587: PPUSH
11588: CALL_OW 297
11592: PUSH
11593: LD_INT 30
11595: LESS
11596: IFFALSE 11614
// pom1 = pom1 ^ i ;
11598: LD_ADDR_VAR 0 2
11602: PUSH
11603: LD_VAR 0 2
11607: PUSH
11608: LD_VAR 0 3
11612: ADD
11613: ST_TO_ADDR
11614: GO 11574
11616: POP
11617: POP
// if pom1 > 0 then
11618: LD_VAR 0 2
11622: PUSH
11623: LD_INT 0
11625: GREATER
11626: IFFALSE 11674
// begin while IsConstructed ( pom1 [ 1 ] ) do
11628: LD_VAR 0 2
11632: PUSH
11633: LD_INT 1
11635: ARRAY
11636: PPUSH
11637: CALL_OW 304
11641: IFFALSE 11652
// wait ( 0 0$5 ) ;
11643: LD_INT 175
11645: PPUSH
11646: CALL_OW 67
11650: GO 11628
// ChangeMissionObjectives ( M2 ) ;
11652: LD_STRING M2
11654: PPUSH
11655: CALL_OW 337
// pojmenovani_kaganoviche ( pom1 [ 1 ] ) ;
11659: LD_VAR 0 2
11663: PUSH
11664: LD_INT 1
11666: ARRAY
11667: PPUSH
11668: CALL 5915 0 1
// end else
11672: GO 11675
// enable ;
11674: ENABLE
// end ;
11675: PPOPN 3
11677: END
// every 0 0$2 trigger FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_factory ] ] ) > 0 do var pom ;
11678: LD_INT 2
11680: PPUSH
11681: LD_INT 22
11683: PUSH
11684: LD_EXP 1
11688: PUSH
11689: EMPTY
11690: LIST
11691: LIST
11692: PUSH
11693: LD_INT 30
11695: PUSH
11696: LD_INT 3
11698: PUSH
11699: EMPTY
11700: LIST
11701: LIST
11702: PUSH
11703: EMPTY
11704: LIST
11705: LIST
11706: PPUSH
11707: CALL_OW 70
11711: PUSH
11712: LD_INT 0
11714: GREATER
11715: IFFALSE 12007
11717: GO 11719
11719: DISABLE
11720: LD_INT 0
11722: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_factory ] ] ) ;
11723: LD_ADDR_VAR 0 1
11727: PUSH
11728: LD_INT 2
11730: PPUSH
11731: LD_INT 22
11733: PUSH
11734: LD_EXP 1
11738: PUSH
11739: EMPTY
11740: LIST
11741: LIST
11742: PUSH
11743: LD_INT 30
11745: PUSH
11746: LD_INT 3
11748: PUSH
11749: EMPTY
11750: LIST
11751: LIST
11752: PUSH
11753: EMPTY
11754: LIST
11755: LIST
11756: PPUSH
11757: CALL_OW 70
11761: ST_TO_ADDR
// pom = pom [ 1 ] ;
11762: LD_ADDR_VAR 0 1
11766: PUSH
11767: LD_VAR 0 1
11771: PUSH
11772: LD_INT 1
11774: ARRAY
11775: ST_TO_ADDR
// while IsConstructed ( pom ) <> 0 do
11776: LD_VAR 0 1
11780: PPUSH
11781: CALL_OW 304
11785: PUSH
11786: LD_INT 0
11788: NONEQUAL
11789: IFFALSE 11800
// wait ( 0 0$2 ) ;
11791: LD_INT 70
11793: PPUSH
11794: CALL_OW 67
11798: GO 11776
// CenterNowOnUnits ( pom ) ;
11800: LD_VAR 0 1
11804: PPUSH
11805: CALL_OW 87
// interface_hidden := true ;
11809: LD_ADDR_OWVAR 54
11813: PUSH
11814: LD_INT 1
11816: ST_TO_ADDR
// pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_oil_power ] ] ) ;
11817: LD_ADDR_VAR 0 1
11821: PUSH
11822: LD_INT 2
11824: PPUSH
11825: LD_INT 22
11827: PUSH
11828: LD_EXP 1
11832: PUSH
11833: EMPTY
11834: LIST
11835: LIST
11836: PUSH
11837: LD_INT 30
11839: PUSH
11840: LD_INT 26
11842: PUSH
11843: EMPTY
11844: LIST
11845: LIST
11846: PUSH
11847: EMPTY
11848: LIST
11849: LIST
11850: PPUSH
11851: CALL_OW 70
11855: ST_TO_ADDR
// if pom = 0 then
11856: LD_VAR 0 1
11860: PUSH
11861: LD_INT 0
11863: EQUAL
11864: IFFALSE 11981
// begin DialogueOn ;
11866: CALL_OW 6
// Say ( bur , D3aa-Bur-1 ) ;
11870: LD_EXP 27
11874: PPUSH
11875: LD_STRING D3aa-Bur-1
11877: PPUSH
11878: CALL_OW 88
// if IsOK ( schol ) then
11882: LD_EXP 31
11886: PPUSH
11887: CALL_OW 302
11891: IFFALSE 11919
// begin Say ( schol , D3aa-Sch-1 ) ;
11893: LD_EXP 31
11897: PPUSH
11898: LD_STRING D3aa-Sch-1
11900: PPUSH
11901: CALL_OW 88
// Say ( bur , D3aa-Bur-2 ) ;
11905: LD_EXP 27
11909: PPUSH
11910: LD_STRING D3aa-Bur-2
11912: PPUSH
11913: CALL_OW 88
// end else
11917: GO 11981
// begin pom = GetPeople ( sex_male , class_scientistic , [ bur ] ) ;
11919: LD_ADDR_VAR 0 1
11923: PUSH
11924: LD_INT 1
11926: PPUSH
11927: LD_INT 4
11929: PPUSH
11930: LD_EXP 27
11934: PUSH
11935: EMPTY
11936: LIST
11937: PPUSH
11938: CALL 12552 0 3
11942: ST_TO_ADDR
// if pom > 0 then
11943: LD_VAR 0 1
11947: PUSH
11948: LD_INT 0
11950: GREATER
11951: IFFALSE 11981
// begin Say ( pom [ 1 ] , D3aa-Sci1-1 ) ;
11953: LD_VAR 0 1
11957: PUSH
11958: LD_INT 1
11960: ARRAY
11961: PPUSH
11962: LD_STRING D3aa-Sci1-1
11964: PPUSH
11965: CALL_OW 88
// Say ( bur , D3aa-Bur-2 ) ;
11969: LD_EXP 27
11973: PPUSH
11974: LD_STRING D3aa-Bur-2
11976: PPUSH
11977: CALL_OW 88
// end ; end ; end ; ChangeMissionObjectives ( M3 ) ;
11981: LD_STRING M3
11983: PPUSH
11984: CALL_OW 337
// Hint ( Factory ) ;
11988: LD_STRING Factory
11990: PPUSH
11991: CALL_OW 339
// interface_hidden := false ;
11995: LD_ADDR_OWVAR 54
11999: PUSH
12000: LD_INT 0
12002: ST_TO_ADDR
// DialogueOff ;
12003: CALL_OW 7
// end ;
12007: PPOPN 1
12009: END
// every 0 0$5 trigger FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_armoury ] ] ) > 0 do var pom ;
12010: LD_INT 2
12012: PPUSH
12013: LD_INT 22
12015: PUSH
12016: LD_EXP 1
12020: PUSH
12021: EMPTY
12022: LIST
12023: LIST
12024: PUSH
12025: LD_INT 30
12027: PUSH
12028: LD_INT 4
12030: PUSH
12031: EMPTY
12032: LIST
12033: LIST
12034: PUSH
12035: EMPTY
12036: LIST
12037: LIST
12038: PPUSH
12039: CALL_OW 70
12043: PUSH
12044: LD_INT 0
12046: GREATER
12047: IFFALSE 12129
12049: GO 12051
12051: DISABLE
12052: LD_INT 0
12054: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_armoury ] ] ) ;
12055: LD_ADDR_VAR 0 1
12059: PUSH
12060: LD_INT 2
12062: PPUSH
12063: LD_INT 22
12065: PUSH
12066: LD_EXP 1
12070: PUSH
12071: EMPTY
12072: LIST
12073: LIST
12074: PUSH
12075: LD_INT 30
12077: PUSH
12078: LD_INT 4
12080: PUSH
12081: EMPTY
12082: LIST
12083: LIST
12084: PUSH
12085: EMPTY
12086: LIST
12087: LIST
12088: PPUSH
12089: CALL_OW 70
12093: ST_TO_ADDR
// while IsConstructed ( pom [ 1 ] ) <> 0 do
12094: LD_VAR 0 1
12098: PUSH
12099: LD_INT 1
12101: ARRAY
12102: PPUSH
12103: CALL_OW 304
12107: PUSH
12108: LD_INT 0
12110: NONEQUAL
12111: IFFALSE 12122
// wait ( 0 0$5 ) ;
12113: LD_INT 175
12115: PPUSH
12116: CALL_OW 67
12120: GO 12094
// Hint ( Armoury ) ;
12122: LD_STRING Armoury
12124: PPUSH
12125: CALL_OW 339
// end ;
12129: PPOPN 1
12131: END
// every 0 0$3 trigger hint_bw do var pom ;
12132: LD_LOC 22
12136: IFFALSE 12190
12138: GO 12140
12140: DISABLE
12141: LD_INT 0
12143: PPUSH
// begin pom = FilterUnitsInArea ( RU2_base , [ [ f_side , You ] , [ f_btype , b_breastwork ] ] ) ;
12144: LD_ADDR_VAR 0 1
12148: PUSH
12149: LD_INT 2
12151: PPUSH
12152: LD_INT 22
12154: PUSH
12155: LD_EXP 1
12159: PUSH
12160: EMPTY
12161: LIST
12162: LIST
12163: PUSH
12164: LD_INT 30
12166: PUSH
12167: LD_INT 31
12169: PUSH
12170: EMPTY
12171: LIST
12172: LIST
12173: PUSH
12174: EMPTY
12175: LIST
12176: LIST
12177: PPUSH
12178: CALL_OW 70
12182: ST_TO_ADDR
// Hint ( bunkers ) ;
12183: LD_STRING bunkers
12185: PPUSH
12186: CALL_OW 339
// end ;
12190: PPOPN 1
12192: END
// export function dialog_scholtze_enter ; begin
12193: LD_INT 0
12195: PPUSH
// CenterOnUnits ( schol2 ) ;
12196: LD_EXP 32
12200: PPUSH
12201: CALL_OW 85
// DialogueOn ;
12205: CALL_OW 6
// interface_hidden := true ;
12209: LD_ADDR_OWVAR 54
12213: PUSH
12214: LD_INT 1
12216: ST_TO_ADDR
// SayRadio ( schol2 , D4-Sch-1 ) ;
12217: LD_EXP 32
12221: PPUSH
12222: LD_STRING D4-Sch-1
12224: PPUSH
12225: CALL_OW 94
// Say ( bur , D4-Bur-1 ) ;
12229: LD_EXP 27
12233: PPUSH
12234: LD_STRING D4-Bur-1
12236: PPUSH
12237: CALL_OW 88
// ChangeMissionObjectives ( M4 ) ;
12241: LD_STRING M4
12243: PPUSH
12244: CALL_OW 337
// interface_hidden := false ;
12248: LD_ADDR_OWVAR 54
12252: PUSH
12253: LD_INT 0
12255: ST_TO_ADDR
// DialogueOff ;
12256: CALL_OW 7
// end ;
12260: LD_VAR 0 1
12264: RET
// export function dialog_scholtze_nalezen ; begin
12265: LD_INT 0
12267: PPUSH
// CenterOnUnits ( schol2 ) ;
12268: LD_EXP 32
12272: PPUSH
12273: CALL_OW 85
// DialogueOn ;
12277: CALL_OW 6
// interface_hidden := true ;
12281: LD_ADDR_OWVAR 54
12285: PUSH
12286: LD_INT 1
12288: ST_TO_ADDR
// if IsOK ( schol2 ) then
12289: LD_EXP 32
12293: PPUSH
12294: CALL_OW 302
12298: IFFALSE 12343
// begin Say ( schol2 , D4a-Sch-1 ) ;
12300: LD_EXP 32
12304: PPUSH
12305: LD_STRING D4a-Sch-1
12307: PPUSH
12308: CALL_OW 88
// Say ( bur , D4a-Bur-1 ) ;
12312: LD_EXP 27
12316: PPUSH
12317: LD_STRING D4a-Bur-1
12319: PPUSH
12320: CALL_OW 88
// Say ( schol2 , D4a-Sch-2 ) ;
12324: LD_EXP 32
12328: PPUSH
12329: LD_STRING D4a-Sch-2
12331: PPUSH
12332: CALL_OW 88
// ChangeMissionObjectives ( MScholtzeOut ) ;
12336: LD_STRING MScholtzeOut
12338: PPUSH
12339: CALL_OW 337
// end ; interface_hidden := false ;
12343: LD_ADDR_OWVAR 54
12347: PUSH
12348: LD_INT 0
12350: ST_TO_ADDR
// DialogueOff ;
12351: CALL_OW 7
// end ;
12355: LD_VAR 0 1
12359: RET
// every 0 0$1 trigger am_posily_videny_rusakama and FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) = 1 marked 201 do var pom ;
12360: CALL 27722 0 0
12364: PUSH
12365: LD_INT 22
12367: PUSH
12368: LD_EXP 1
12372: PUSH
12373: EMPTY
12374: LIST
12375: LIST
12376: PUSH
12377: LD_INT 30
12379: PUSH
12380: LD_INT 0
12382: PUSH
12383: EMPTY
12384: LIST
12385: LIST
12386: PUSH
12387: EMPTY
12388: LIST
12389: LIST
12390: PPUSH
12391: CALL_OW 69
12395: PUSH
12396: LD_INT 1
12398: EQUAL
12399: AND
12400: IFFALSE 12549
12402: GO 12404
12404: DISABLE
12405: LD_INT 0
12407: PPUSH
// begin DialogueOn ;
12408: CALL_OW 6
// interface_hidden := true ;
12412: LD_ADDR_OWVAR 54
12416: PUSH
12417: LD_INT 1
12419: ST_TO_ADDR
// CenterOnUnits ( Am_posily ) ;
12420: LD_EXP 70
12424: PPUSH
12425: CALL_OW 85
// pom = GetPeople ( sex_male , class_soldier , [ bur , gny , kov ] ) ;
12429: LD_ADDR_VAR 0 1
12433: PUSH
12434: LD_INT 1
12436: PPUSH
12437: LD_INT 1
12439: PPUSH
12440: LD_EXP 27
12444: PUSH
12445: LD_EXP 29
12449: PUSH
12450: LD_EXP 28
12454: PUSH
12455: EMPTY
12456: LIST
12457: LIST
12458: LIST
12459: PPUSH
12460: CALL 12552 0 3
12464: ST_TO_ADDR
// if pom = 0 then
12465: LD_VAR 0 1
12469: PUSH
12470: LD_INT 0
12472: EQUAL
12473: IFFALSE 12499
// pom = GetPeople ( sex_male , class_soldier , [ bur ] ) ;
12475: LD_ADDR_VAR 0 1
12479: PUSH
12480: LD_INT 1
12482: PPUSH
12483: LD_INT 1
12485: PPUSH
12486: LD_EXP 27
12490: PUSH
12491: EMPTY
12492: LIST
12493: PPUSH
12494: CALL 12552 0 3
12498: ST_TO_ADDR
// if pom > 0 then
12499: LD_VAR 0 1
12503: PUSH
12504: LD_INT 0
12506: GREATER
12507: IFFALSE 12537
// begin Say ( pom [ 1 ] , D3a-RSol1-1 ) ;
12509: LD_VAR 0 1
12513: PUSH
12514: LD_INT 1
12516: ARRAY
12517: PPUSH
12518: LD_STRING D3a-RSol1-1
12520: PPUSH
12521: CALL_OW 88
// Say ( bur , D3a-Bur-1 ) ;
12525: LD_EXP 27
12529: PPUSH
12530: LD_STRING D3a-Bur-1
12532: PPUSH
12533: CALL_OW 88
// end ; interface_hidden := false ;
12537: LD_ADDR_OWVAR 54
12541: PUSH
12542: LD_INT 0
12544: ST_TO_ADDR
// DialogueOff ;
12545: CALL_OW 7
// end ;
12549: PPOPN 1
12551: END
// function GetPeople ( sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
12552: LD_INT 0
12554: PPUSH
12555: PPUSH
12556: PPUSH
12557: PPUSH
12558: PPUSH
12559: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
12560: LD_ADDR_VAR 0 6
12564: PUSH
12565: LD_INT 22
12567: PUSH
12568: LD_EXP 1
12572: PUSH
12573: EMPTY
12574: LIST
12575: LIST
12576: PUSH
12577: LD_INT 25
12579: PUSH
12580: LD_INT 4
12582: PUSH
12583: EMPTY
12584: LIST
12585: LIST
12586: PUSH
12587: LD_INT 26
12589: PUSH
12590: LD_VAR 0 1
12594: PUSH
12595: EMPTY
12596: LIST
12597: LIST
12598: PUSH
12599: EMPTY
12600: LIST
12601: LIST
12602: LIST
12603: PPUSH
12604: CALL_OW 69
12608: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
12609: LD_ADDR_VAR 0 7
12613: PUSH
12614: LD_INT 22
12616: PUSH
12617: LD_EXP 1
12621: PUSH
12622: EMPTY
12623: LIST
12624: LIST
12625: PUSH
12626: LD_INT 25
12628: PUSH
12629: LD_INT 3
12631: PUSH
12632: EMPTY
12633: LIST
12634: LIST
12635: PUSH
12636: LD_INT 26
12638: PUSH
12639: LD_VAR 0 1
12643: PUSH
12644: EMPTY
12645: LIST
12646: LIST
12647: PUSH
12648: EMPTY
12649: LIST
12650: LIST
12651: LIST
12652: PPUSH
12653: CALL_OW 69
12657: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
12658: LD_ADDR_VAR 0 8
12662: PUSH
12663: LD_INT 22
12665: PUSH
12666: LD_EXP 1
12670: PUSH
12671: EMPTY
12672: LIST
12673: LIST
12674: PUSH
12675: LD_INT 25
12677: PUSH
12678: LD_INT 2
12680: PUSH
12681: EMPTY
12682: LIST
12683: LIST
12684: PUSH
12685: LD_INT 26
12687: PUSH
12688: LD_VAR 0 1
12692: PUSH
12693: EMPTY
12694: LIST
12695: LIST
12696: PUSH
12697: EMPTY
12698: LIST
12699: LIST
12700: LIST
12701: PPUSH
12702: CALL_OW 69
12706: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , You ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
12707: LD_ADDR_VAR 0 9
12711: PUSH
12712: LD_INT 22
12714: PUSH
12715: LD_EXP 1
12719: PUSH
12720: EMPTY
12721: LIST
12722: LIST
12723: PUSH
12724: LD_INT 25
12726: PUSH
12727: LD_INT 1
12729: PUSH
12730: EMPTY
12731: LIST
12732: LIST
12733: PUSH
12734: LD_INT 26
12736: PUSH
12737: LD_VAR 0 1
12741: PUSH
12742: EMPTY
12743: LIST
12744: LIST
12745: PUSH
12746: EMPTY
12747: LIST
12748: LIST
12749: LIST
12750: PPUSH
12751: CALL_OW 69
12755: ST_TO_ADDR
// case povolani of class_scientistic :
12756: LD_VAR 0 2
12760: PUSH
12761: LD_INT 4
12763: DOUBLE
12764: EQUAL
12765: IFTRUE 12769
12767: GO 12782
12769: POP
// pom = pom1 ; class_mechanic :
12770: LD_ADDR_VAR 0 5
12774: PUSH
12775: LD_VAR 0 6
12779: ST_TO_ADDR
12780: GO 12846
12782: LD_INT 3
12784: DOUBLE
12785: EQUAL
12786: IFTRUE 12790
12788: GO 12803
12790: POP
// pom = pom2 ; class_engineer :
12791: LD_ADDR_VAR 0 5
12795: PUSH
12796: LD_VAR 0 7
12800: ST_TO_ADDR
12801: GO 12846
12803: LD_INT 2
12805: DOUBLE
12806: EQUAL
12807: IFTRUE 12811
12809: GO 12824
12811: POP
// pom = pom3 ; class_soldier :
12812: LD_ADDR_VAR 0 5
12816: PUSH
12817: LD_VAR 0 8
12821: ST_TO_ADDR
12822: GO 12846
12824: LD_INT 1
12826: DOUBLE
12827: EQUAL
12828: IFTRUE 12832
12830: GO 12845
12832: POP
// pom = pom4 ; end ;
12833: LD_ADDR_VAR 0 5
12837: PUSH
12838: LD_VAR 0 9
12842: ST_TO_ADDR
12843: GO 12846
12845: POP
// if povolani <> class_scientistic then
12846: LD_VAR 0 2
12850: PUSH
12851: LD_INT 4
12853: NONEQUAL
12854: IFFALSE 12872
// pom = pom ^ pom1 ;
12856: LD_ADDR_VAR 0 5
12860: PUSH
12861: LD_VAR 0 5
12865: PUSH
12866: LD_VAR 0 6
12870: ADD
12871: ST_TO_ADDR
// if povolani <> class_mechanic then
12872: LD_VAR 0 2
12876: PUSH
12877: LD_INT 3
12879: NONEQUAL
12880: IFFALSE 12898
// pom = pom ^ pom2 ;
12882: LD_ADDR_VAR 0 5
12886: PUSH
12887: LD_VAR 0 5
12891: PUSH
12892: LD_VAR 0 7
12896: ADD
12897: ST_TO_ADDR
// if povolani <> class_engineer then
12898: LD_VAR 0 2
12902: PUSH
12903: LD_INT 2
12905: NONEQUAL
12906: IFFALSE 12924
// pom = pom ^ pom3 ;
12908: LD_ADDR_VAR 0 5
12912: PUSH
12913: LD_VAR 0 5
12917: PUSH
12918: LD_VAR 0 8
12922: ADD
12923: ST_TO_ADDR
// if povolani <> class_soldier then
12924: LD_VAR 0 2
12928: PUSH
12929: LD_INT 1
12931: NONEQUAL
12932: IFFALSE 12950
// pom = pom ^ pom4 ;
12934: LD_ADDR_VAR 0 5
12938: PUSH
12939: LD_VAR 0 5
12943: PUSH
12944: LD_VAR 0 9
12948: ADD
12949: ST_TO_ADDR
// result := pom diff diffseznam ;
12950: LD_ADDR_VAR 0 4
12954: PUSH
12955: LD_VAR 0 5
12959: PUSH
12960: LD_VAR 0 3
12964: DIFF
12965: ST_TO_ADDR
// end ;
12966: LD_VAR 0 4
12970: RET
// function GetPeopleSide ( side , sex , povolani , diffseznam ) ; var pom , pom1 , pom2 , pom3 , pom4 ; begin
12971: LD_INT 0
12973: PPUSH
12974: PPUSH
12975: PPUSH
12976: PPUSH
12977: PPUSH
12978: PPUSH
// pom1 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_scientistic ] , [ f_sex , sex ] ] ) ;
12979: LD_ADDR_VAR 0 7
12983: PUSH
12984: LD_INT 22
12986: PUSH
12987: LD_VAR 0 1
12991: PUSH
12992: EMPTY
12993: LIST
12994: LIST
12995: PUSH
12996: LD_INT 25
12998: PUSH
12999: LD_INT 4
13001: PUSH
13002: EMPTY
13003: LIST
13004: LIST
13005: PUSH
13006: LD_INT 26
13008: PUSH
13009: LD_VAR 0 2
13013: PUSH
13014: EMPTY
13015: LIST
13016: LIST
13017: PUSH
13018: EMPTY
13019: LIST
13020: LIST
13021: LIST
13022: PPUSH
13023: CALL_OW 69
13027: ST_TO_ADDR
// pom2 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_mechanic ] , [ f_sex , sex ] ] ) ;
13028: LD_ADDR_VAR 0 8
13032: PUSH
13033: LD_INT 22
13035: PUSH
13036: LD_VAR 0 1
13040: PUSH
13041: EMPTY
13042: LIST
13043: LIST
13044: PUSH
13045: LD_INT 25
13047: PUSH
13048: LD_INT 3
13050: PUSH
13051: EMPTY
13052: LIST
13053: LIST
13054: PUSH
13055: LD_INT 26
13057: PUSH
13058: LD_VAR 0 2
13062: PUSH
13063: EMPTY
13064: LIST
13065: LIST
13066: PUSH
13067: EMPTY
13068: LIST
13069: LIST
13070: LIST
13071: PPUSH
13072: CALL_OW 69
13076: ST_TO_ADDR
// pom3 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_engineer ] , [ f_sex , sex ] ] ) ;
13077: LD_ADDR_VAR 0 9
13081: PUSH
13082: LD_INT 22
13084: PUSH
13085: LD_VAR 0 1
13089: PUSH
13090: EMPTY
13091: LIST
13092: LIST
13093: PUSH
13094: LD_INT 25
13096: PUSH
13097: LD_INT 2
13099: PUSH
13100: EMPTY
13101: LIST
13102: LIST
13103: PUSH
13104: LD_INT 26
13106: PUSH
13107: LD_VAR 0 2
13111: PUSH
13112: EMPTY
13113: LIST
13114: LIST
13115: PUSH
13116: EMPTY
13117: LIST
13118: LIST
13119: LIST
13120: PPUSH
13121: CALL_OW 69
13125: ST_TO_ADDR
// pom4 = FilterAllUnits ( [ [ f_side , side ] , [ f_class , class_soldier ] , [ f_sex , sex ] ] ) ;
13126: LD_ADDR_VAR 0 10
13130: PUSH
13131: LD_INT 22
13133: PUSH
13134: LD_VAR 0 1
13138: PUSH
13139: EMPTY
13140: LIST
13141: LIST
13142: PUSH
13143: LD_INT 25
13145: PUSH
13146: LD_INT 1
13148: PUSH
13149: EMPTY
13150: LIST
13151: LIST
13152: PUSH
13153: LD_INT 26
13155: PUSH
13156: LD_VAR 0 2
13160: PUSH
13161: EMPTY
13162: LIST
13163: LIST
13164: PUSH
13165: EMPTY
13166: LIST
13167: LIST
13168: LIST
13169: PPUSH
13170: CALL_OW 69
13174: ST_TO_ADDR
// case povolani of class_scientistic :
13175: LD_VAR 0 3
13179: PUSH
13180: LD_INT 4
13182: DOUBLE
13183: EQUAL
13184: IFTRUE 13188
13186: GO 13201
13188: POP
// pom = pom1 ; class_mechanic :
13189: LD_ADDR_VAR 0 6
13193: PUSH
13194: LD_VAR 0 7
13198: ST_TO_ADDR
13199: GO 13265
13201: LD_INT 3
13203: DOUBLE
13204: EQUAL
13205: IFTRUE 13209
13207: GO 13222
13209: POP
// pom = pom2 ; class_engineer :
13210: LD_ADDR_VAR 0 6
13214: PUSH
13215: LD_VAR 0 8
13219: ST_TO_ADDR
13220: GO 13265
13222: LD_INT 2
13224: DOUBLE
13225: EQUAL
13226: IFTRUE 13230
13228: GO 13243
13230: POP
// pom = pom3 ; class_soldier :
13231: LD_ADDR_VAR 0 6
13235: PUSH
13236: LD_VAR 0 9
13240: ST_TO_ADDR
13241: GO 13265
13243: LD_INT 1
13245: DOUBLE
13246: EQUAL
13247: IFTRUE 13251
13249: GO 13264
13251: POP
// pom = pom4 ; end ;
13252: LD_ADDR_VAR 0 6
13256: PUSH
13257: LD_VAR 0 10
13261: ST_TO_ADDR
13262: GO 13265
13264: POP
// if povolani <> class_scientistic then
13265: LD_VAR 0 3
13269: PUSH
13270: LD_INT 4
13272: NONEQUAL
13273: IFFALSE 13291
// pom = pom ^ pom1 ;
13275: LD_ADDR_VAR 0 6
13279: PUSH
13280: LD_VAR 0 6
13284: PUSH
13285: LD_VAR 0 7
13289: ADD
13290: ST_TO_ADDR
// if povolani <> class_mechanic then
13291: LD_VAR 0 3
13295: PUSH
13296: LD_INT 3
13298: NONEQUAL
13299: IFFALSE 13317
// pom = pom ^ pom2 ;
13301: LD_ADDR_VAR 0 6
13305: PUSH
13306: LD_VAR 0 6
13310: PUSH
13311: LD_VAR 0 8
13315: ADD
13316: ST_TO_ADDR
// if povolani <> class_engineer then
13317: LD_VAR 0 3
13321: PUSH
13322: LD_INT 2
13324: NONEQUAL
13325: IFFALSE 13343
// pom = pom ^ pom3 ;
13327: LD_ADDR_VAR 0 6
13331: PUSH
13332: LD_VAR 0 6
13336: PUSH
13337: LD_VAR 0 9
13341: ADD
13342: ST_TO_ADDR
// if povolani <> class_soldier then
13343: LD_VAR 0 3
13347: PUSH
13348: LD_INT 1
13350: NONEQUAL
13351: IFFALSE 13369
// pom = pom ^ pom4 ;
13353: LD_ADDR_VAR 0 6
13357: PUSH
13358: LD_VAR 0 6
13362: PUSH
13363: LD_VAR 0 10
13367: ADD
13368: ST_TO_ADDR
// result := pom diff diffseznam ;
13369: LD_ADDR_VAR 0 5
13373: PUSH
13374: LD_VAR 0 6
13378: PUSH
13379: LD_VAR 0 4
13383: DIFF
13384: ST_TO_ADDR
// end ;
13385: LD_VAR 0 5
13389: RET
// every 0 0$1 trigger am_posily_videny_rusakama and FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 1 do var pom ;
13390: CALL 27722 0 0
13394: PUSH
13395: LD_INT 22
13397: PUSH
13398: LD_EXP 1
13402: PUSH
13403: EMPTY
13404: LIST
13405: LIST
13406: PUSH
13407: LD_INT 30
13409: PUSH
13410: LD_INT 0
13412: PUSH
13413: EMPTY
13414: LIST
13415: LIST
13416: PUSH
13417: EMPTY
13418: LIST
13419: LIST
13420: PPUSH
13421: CALL_OW 69
13425: PUSH
13426: LD_INT 1
13428: GREATER
13429: AND
13430: IFFALSE 13648
13432: GO 13434
13434: DISABLE
13435: LD_INT 0
13437: PPUSH
// begin disable ( 201 ) ;
13438: LD_INT 201
13440: DISABLE_MARKED
// DialogueOn ;
13441: CALL_OW 6
// interface_hidden := true ;
13445: LD_ADDR_OWVAR 54
13449: PUSH
13450: LD_INT 1
13452: ST_TO_ADDR
// CenterOnUnits ( Am_posily ) ;
13453: LD_EXP 70
13457: PPUSH
13458: CALL_OW 85
// pom = GetPeople ( sex_male , class_soldier , [ bur , gny , kov ] ) ;
13462: LD_ADDR_VAR 0 1
13466: PUSH
13467: LD_INT 1
13469: PPUSH
13470: LD_INT 1
13472: PPUSH
13473: LD_EXP 27
13477: PUSH
13478: LD_EXP 29
13482: PUSH
13483: LD_EXP 28
13487: PUSH
13488: EMPTY
13489: LIST
13490: LIST
13491: LIST
13492: PPUSH
13493: CALL 12552 0 3
13497: ST_TO_ADDR
// if pom = 0 then
13498: LD_VAR 0 1
13502: PUSH
13503: LD_INT 0
13505: EQUAL
13506: IFFALSE 13532
// pom = GetPeople ( sex_male , class_soldier , [ bur ] ) ;
13508: LD_ADDR_VAR 0 1
13512: PUSH
13513: LD_INT 1
13515: PPUSH
13516: LD_INT 1
13518: PPUSH
13519: LD_EXP 27
13523: PUSH
13524: EMPTY
13525: LIST
13526: PPUSH
13527: CALL 12552 0 3
13531: ST_TO_ADDR
// if pom > 0 then
13532: LD_VAR 0 1
13536: PUSH
13537: LD_INT 0
13539: GREATER
13540: IFFALSE 13636
// begin Say ( pom [ 1 ] , D3b-RSol1-1 ) ;
13542: LD_VAR 0 1
13546: PUSH
13547: LD_INT 1
13549: ARRAY
13550: PPUSH
13551: LD_STRING D3b-RSol1-1
13553: PPUSH
13554: CALL_OW 88
// if IsOK ( gny ) then
13558: LD_EXP 29
13562: PPUSH
13563: CALL_OW 302
13567: IFFALSE 13595
// begin Say ( gny , D3b-Gny-1 ) ;
13569: LD_EXP 29
13573: PPUSH
13574: LD_STRING D3b-Gny-1
13576: PPUSH
13577: CALL_OW 88
// Say ( bur , D3b-Bur-1 ) ;
13581: LD_EXP 27
13585: PPUSH
13586: LD_STRING D3b-Bur-1
13588: PPUSH
13589: CALL_OW 88
// end else
13593: GO 13636
// if ISOK ( kov ) then
13595: LD_EXP 28
13599: PPUSH
13600: CALL_OW 302
13604: IFFALSE 13620
// Say ( kov , D3b-Kov-1 ) else
13606: LD_EXP 28
13610: PPUSH
13611: LD_STRING D3b-Kov-1
13613: PPUSH
13614: CALL_OW 88
13618: GO 13636
// Say ( pom [ 1 ] , D3b-RSol1-2 ) ;
13620: LD_VAR 0 1
13624: PUSH
13625: LD_INT 1
13627: ARRAY
13628: PPUSH
13629: LD_STRING D3b-RSol1-2
13631: PPUSH
13632: CALL_OW 88
// end ; interface_hidden := false ;
13636: LD_ADDR_OWVAR 54
13640: PUSH
13641: LD_INT 0
13643: ST_TO_ADDR
// DialogueOff ;
13644: CALL_OW 7
// end ;
13648: PPOPN 1
13650: END
// export function dialog_otazka_poctu_aut ; var pom ; begin
13651: LD_INT 0
13653: PPUSH
13654: PPUSH
// DialogueOn ;
13655: CALL_OW 6
// interface_hidden := true ;
13659: LD_ADDR_OWVAR 54
13663: PUSH
13664: LD_INT 1
13666: ST_TO_ADDR
// Say ( kur , D5-Kur-1 ) ;
13667: LD_EXP 25
13671: PPUSH
13672: LD_STRING D5-Kur-1
13674: PPUSH
13675: CALL_OW 88
// pom = Query ( QVehicles ) ;
13679: LD_ADDR_VAR 0 2
13683: PUSH
13684: LD_STRING QVehicles
13686: PPUSH
13687: CALL_OW 97
13691: ST_TO_ADDR
// case pom of 1 :
13692: LD_VAR 0 2
13696: PUSH
13697: LD_INT 1
13699: DOUBLE
13700: EQUAL
13701: IFTRUE 13705
13703: GO 13732
13705: POP
// begin Say ( bur , D6a-Bur-1 ) ;
13706: LD_EXP 27
13710: PPUSH
13711: LD_STRING D6a-Bur-1
13713: PPUSH
13714: CALL_OW 88
// Say ( kur , D6a-Kur-1 ) ;
13718: LD_EXP 25
13722: PPUSH
13723: LD_STRING D6a-Kur-1
13725: PPUSH
13726: CALL_OW 88
// end ; 2 :
13730: GO 13827
13732: LD_INT 2
13734: DOUBLE
13735: EQUAL
13736: IFTRUE 13740
13738: GO 13779
13740: POP
// begin Say ( bur , D6b-Bur-1 ) ;
13741: LD_EXP 27
13745: PPUSH
13746: LD_STRING D6b-Bur-1
13748: PPUSH
13749: CALL_OW 88
// Say ( kur , D6b-Kur-1 ) ;
13753: LD_EXP 25
13757: PPUSH
13758: LD_STRING D6b-Kur-1
13760: PPUSH
13761: CALL_OW 88
// Say ( bur , D6b-Bur-2 ) ;
13765: LD_EXP 27
13769: PPUSH
13770: LD_STRING D6b-Bur-2
13772: PPUSH
13773: CALL_OW 88
// end ; 3 :
13777: GO 13827
13779: LD_INT 3
13781: DOUBLE
13782: EQUAL
13783: IFTRUE 13787
13785: GO 13826
13787: POP
// begin Say ( bur , D6c-Bur-1 ) ;
13788: LD_EXP 27
13792: PPUSH
13793: LD_STRING D6c-Bur-1
13795: PPUSH
13796: CALL_OW 88
// Say ( kur , D6c-Kur-1 ) ;
13800: LD_EXP 25
13804: PPUSH
13805: LD_STRING D6c-Kur-1
13807: PPUSH
13808: CALL_OW 88
// Say ( bur , D6c-Bur-2 ) ;
13812: LD_EXP 27
13816: PPUSH
13817: LD_STRING D6c-Bur-2
13819: PPUSH
13820: CALL_OW 88
// end ; end ;
13824: GO 13827
13826: POP
// interface_hidden := false ;
13827: LD_ADDR_OWVAR 54
13831: PUSH
13832: LD_INT 0
13834: ST_TO_ADDR
// DialogueOff ;
13835: CALL_OW 7
// result := pom ;
13839: LD_ADDR_VAR 0 1
13843: PUSH
13844: LD_VAR 0 2
13848: ST_TO_ADDR
// end ;
13849: LD_VAR 0 1
13853: RET
// export function hlaska_omicron ; begin
13854: LD_INT 0
13856: PPUSH
// DialogueOn ;
13857: CALL_OW 6
// interface_hidden := true ;
13861: LD_ADDR_OWVAR 54
13865: PUSH
13866: LD_INT 1
13868: ST_TO_ADDR
// Say ( kur , D6c-Kur-2 ) ;
13869: LD_EXP 25
13873: PPUSH
13874: LD_STRING D6c-Kur-2
13876: PPUSH
13877: CALL_OW 88
// interface_hidden := false ;
13881: LD_ADDR_OWVAR 54
13885: PUSH
13886: LD_INT 0
13888: ST_TO_ADDR
// DialogueOff ;
13889: CALL_OW 7
// end ;
13893: LD_VAR 0 1
13897: RET
// every 0 0$1 trigger stav_omikron = 3 do
13898: LD_EXP 37
13902: PUSH
13903: LD_INT 3
13905: EQUAL
13906: IFFALSE 13928
13908: GO 13910
13910: DISABLE
// begin ChangeMissionObjectives ( M5 ) ;
13911: LD_STRING M5
13913: PPUSH
13914: CALL_OW 337
// SetAreaMapShow ( Om_zone1 , 1 ) ;
13918: LD_INT 32
13920: PPUSH
13921: LD_INT 1
13923: PPUSH
13924: CALL_OW 424
// end ;
13928: END
// export function dialog_pred_omicronem ; var pom ; begin
13929: LD_INT 0
13931: PPUSH
13932: PPUSH
// DialogueOn ;
13933: CALL_OW 6
// interface_hidden := true ;
13937: LD_ADDR_OWVAR 54
13941: PUSH
13942: LD_INT 1
13944: ST_TO_ADDR
// Say ( bur , D7-Bur-1 ) ;
13945: LD_EXP 27
13949: PPUSH
13950: LD_STRING D7-Bur-1
13952: PPUSH
13953: CALL_OW 88
// SayRadio ( kur , D7-Kur-1 ) ;
13957: LD_EXP 25
13961: PPUSH
13962: LD_STRING D7-Kur-1
13964: PPUSH
13965: CALL_OW 94
// setkani_om := true ;
13969: LD_ADDR_EXP 39
13973: PUSH
13974: LD_INT 1
13976: ST_TO_ADDR
// ChangeMissionObjectives ( M5a ) ;
13977: LD_STRING M5a
13979: PPUSH
13980: CALL_OW 337
// SetAreaMapShow ( Om_zone1 , 0 ) ;
13984: LD_INT 32
13986: PPUSH
13987: LD_INT 0
13989: PPUSH
13990: CALL_OW 424
// interface_hidden := false ;
13994: LD_ADDR_OWVAR 54
13998: PUSH
13999: LD_INT 0
14001: ST_TO_ADDR
// DialogueOff ;
14002: CALL_OW 7
// end ;
14006: LD_VAR 0 1
14010: RET
// every 0 0$5 trigger stav_omikron = 4 and omicron_half_destroyed do var pom ;
14011: LD_EXP 37
14015: PUSH
14016: LD_INT 4
14018: EQUAL
14019: PUSH
14020: CALL 27791 0 0
14024: AND
14025: IFFALSE 14292
14027: GO 14029
14029: DISABLE
14030: LD_INT 0
14032: PPUSH
// begin popov_ven ;
14033: CALL 6688 0 0
// DialogueOn ;
14037: CALL_OW 6
// interface_hidden := true ;
14041: LD_ADDR_OWVAR 54
14045: PUSH
14046: LD_INT 1
14048: ST_TO_ADDR
// pom = create_kecajici_amik ;
14049: LD_ADDR_VAR 0 1
14053: PUSH
14054: CALL 19335 0 0
14058: ST_TO_ADDR
// SayRadio ( pom , D8-Sol1-1 ) ;
14059: LD_VAR 0 1
14063: PPUSH
14064: LD_STRING D8-Sol1-1
14066: PPUSH
14067: CALL_OW 94
// if IsOK ( kov ) then
14071: LD_EXP 28
14075: PPUSH
14076: CALL_OW 302
14080: IFFALSE 14096
// Say ( kov , D8-Kov-1 ) else
14082: LD_EXP 28
14086: PPUSH
14087: LD_STRING D8-Kov-1
14089: PPUSH
14090: CALL_OW 88
14094: GO 14187
// begin pom = GetPeople ( sex_male , class_soldier , [ bur , gny ] ) ;
14096: LD_ADDR_VAR 0 1
14100: PUSH
14101: LD_INT 1
14103: PPUSH
14104: LD_INT 1
14106: PPUSH
14107: LD_EXP 27
14111: PUSH
14112: LD_EXP 29
14116: PUSH
14117: EMPTY
14118: LIST
14119: LIST
14120: PPUSH
14121: CALL 12552 0 3
14125: ST_TO_ADDR
// if pom = 0 then
14126: LD_VAR 0 1
14130: PUSH
14131: LD_INT 0
14133: EQUAL
14134: IFFALSE 14171
// GetPeopleSide ( You2 , sex_male , class_soldier , [ kur , pop , bel ] ) ;
14136: LD_EXP 2
14140: PPUSH
14141: LD_INT 1
14143: PPUSH
14144: LD_INT 1
14146: PPUSH
14147: LD_EXP 25
14151: PUSH
14152: LD_EXP 26
14156: PUSH
14157: LD_EXP 30
14161: PUSH
14162: EMPTY
14163: LIST
14164: LIST
14165: LIST
14166: PPUSH
14167: CALL 12971 0 4
// Say ( pom [ 1 ] , D8-RSol1-1 ) ;
14171: LD_VAR 0 1
14175: PUSH
14176: LD_INT 1
14178: ARRAY
14179: PPUSH
14180: LD_STRING D8-RSol1-1
14182: PPUSH
14183: CALL_OW 88
// end ; if IsOK ( gny ) then
14187: LD_EXP 29
14191: PPUSH
14192: CALL_OW 302
14196: IFFALSE 14212
// Say ( gny , D8-Gny-1 ) else
14198: LD_EXP 29
14202: PPUSH
14203: LD_STRING D8-Gny-1
14205: PPUSH
14206: CALL_OW 88
14210: GO 14268
// begin pom = GetPeople ( sex_male , class_soldier , [ bur , gny ] ) ;
14212: LD_ADDR_VAR 0 1
14216: PUSH
14217: LD_INT 1
14219: PPUSH
14220: LD_INT 1
14222: PPUSH
14223: LD_EXP 27
14227: PUSH
14228: LD_EXP 29
14232: PUSH
14233: EMPTY
14234: LIST
14235: LIST
14236: PPUSH
14237: CALL 12552 0 3
14241: ST_TO_ADDR
// if pom > 1 then
14242: LD_VAR 0 1
14246: PUSH
14247: LD_INT 1
14249: GREATER
14250: IFFALSE 14268
// Say ( pom [ 2 ] , D8-RSol2-1 ) ;
14252: LD_VAR 0 1
14256: PUSH
14257: LD_INT 2
14259: ARRAY
14260: PPUSH
14261: LD_STRING D8-RSol2-1
14263: PPUSH
14264: CALL_OW 88
// end ; interface_hidden := false ;
14268: LD_ADDR_OWVAR 54
14272: PUSH
14273: LD_INT 0
14275: ST_TO_ADDR
// DialogueOff ;
14276: CALL_OW 7
// stahnuti_amiku ;
14280: CALL 27954 0 0
// stav_omikron = 5 ;
14284: LD_ADDR_EXP 37
14288: PUSH
14289: LD_INT 5
14291: ST_TO_ADDR
// end ;
14292: PPOPN 1
14294: END
// every 0 0$5 trigger stav_omikron = 5 do var gri ;
14295: LD_EXP 37
14299: PUSH
14300: LD_INT 5
14302: EQUAL
14303: IFFALSE 14456
14305: GO 14307
14307: DISABLE
14308: LD_INT 0
14310: PPUSH
// begin gri = create_grishko ;
14311: LD_ADDR_VAR 0 1
14315: PUSH
14316: CALL 19394 0 0
14320: ST_TO_ADDR
// CenterOnUnits ( gri ) ;
14321: LD_VAR 0 1
14325: PPUSH
14326: CALL_OW 85
// DialogueOn ;
14330: CALL_OW 6
// interface_hidden := true ;
14334: LD_ADDR_OWVAR 54
14338: PUSH
14339: LD_INT 1
14341: ST_TO_ADDR
// SayRadio ( gri , D9-Gri-1 ) ;
14342: LD_VAR 0 1
14346: PPUSH
14347: LD_STRING D9-Gri-1
14349: PPUSH
14350: CALL_OW 94
// SayRadio ( kur , D9-Kur-1 ) ;
14354: LD_EXP 25
14358: PPUSH
14359: LD_STRING D9-Kur-1
14361: PPUSH
14362: CALL_OW 94
// wait ( 0 0$2 ) ;
14366: LD_INT 70
14368: PPUSH
14369: CALL_OW 67
// SayRadio ( gri , D9-Gri-2 ) ;
14373: LD_VAR 0 1
14377: PPUSH
14378: LD_STRING D9-Gri-2
14380: PPUSH
14381: CALL_OW 94
// SayRadio ( kur , D9-Kur-2 ) ;
14385: LD_EXP 25
14389: PPUSH
14390: LD_STRING D9-Kur-2
14392: PPUSH
14393: CALL_OW 94
// SayRadio ( gri , D9-Gri-3 ) ;
14397: LD_VAR 0 1
14401: PPUSH
14402: LD_STRING D9-Gri-3
14404: PPUSH
14405: CALL_OW 94
// SayRadio ( kur , D9-Kur-3 ) ;
14409: LD_EXP 25
14413: PPUSH
14414: LD_STRING D9-Kur-3
14416: PPUSH
14417: CALL_OW 94
// interface_hidden := false ;
14421: LD_ADDR_OWVAR 54
14425: PUSH
14426: LD_INT 0
14428: ST_TO_ADDR
// DialogueOff ;
14429: CALL_OW 7
// wait ( 0 0$20 ) ;
14433: LD_INT 700
14435: PPUSH
14436: CALL_OW 67
// stav_omikron = 6 ;
14440: LD_ADDR_EXP 37
14444: PUSH
14445: LD_INT 6
14447: ST_TO_ADDR
// zastaveni_rusaku ;
14448: CALL 10793 0 0
// utok_arabu ;
14452: CALL 28795 0 0
// end ;
14456: PPOPN 1
14458: END
// export function kecy_behem_utoku_arabu ; begin
14459: LD_INT 0
14461: PPUSH
// stav_omikron = 7 ;
14462: LD_ADDR_EXP 37
14466: PUSH
14467: LD_INT 7
14469: ST_TO_ADDR
// SayRadio ( kur , D9a-Kur-1 ) ;
14470: LD_EXP 25
14474: PPUSH
14475: LD_STRING D9a-Kur-1
14477: PPUSH
14478: CALL_OW 94
// Say ( bur , D9a-Bur-1 ) ;
14482: LD_EXP 27
14486: PPUSH
14487: LD_STRING D9a-Bur-1
14489: PPUSH
14490: CALL_OW 88
// SayRadio ( kur , D9a-Kur-2 ) ;
14494: LD_EXP 25
14498: PPUSH
14499: LD_STRING D9a-Kur-2
14501: PPUSH
14502: CALL_OW 94
// posilani_arabskych_hlidek = true ;
14506: LD_ADDR_EXP 72
14510: PUSH
14511: LD_INT 1
14513: ST_TO_ADDR
// manage_ruske_computery_zpet ;
14514: CALL 8124 0 0
// end ;
14518: LD_VAR 0 1
14522: RET
// every 0 0$1 trigger stav_omikron = 8 and get_lidi_popov_area > 0 do var pom , pom1 ;
14523: LD_EXP 37
14527: PUSH
14528: LD_INT 8
14530: EQUAL
14531: PUSH
14532: CALL 9511 0 0
14536: PUSH
14537: LD_INT 0
14539: GREATER
14540: AND
14541: IFFALSE 14792
14543: GO 14545
14545: DISABLE
14546: LD_INT 0
14548: PPUSH
14549: PPUSH
// begin pom = get_lidi_popov_area ;
14550: LD_ADDR_VAR 0 1
14554: PUSH
14555: CALL 9511 0 0
14559: ST_TO_ADDR
// pom = pom [ 1 ] ;
14560: LD_ADDR_VAR 0 1
14564: PUSH
14565: LD_VAR 0 1
14569: PUSH
14570: LD_INT 1
14572: ARRAY
14573: ST_TO_ADDR
// pom1 = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
14574: LD_ADDR_VAR 0 2
14578: PUSH
14579: LD_INT 22
14581: PUSH
14582: LD_EXP 1
14586: PUSH
14587: EMPTY
14588: LIST
14589: LIST
14590: PUSH
14591: LD_INT 2
14593: PUSH
14594: LD_INT 21
14596: PUSH
14597: LD_INT 1
14599: PUSH
14600: EMPTY
14601: LIST
14602: LIST
14603: PUSH
14604: LD_INT 21
14606: PUSH
14607: LD_INT 2
14609: PUSH
14610: EMPTY
14611: LIST
14612: LIST
14613: PUSH
14614: EMPTY
14615: LIST
14616: LIST
14617: LIST
14618: PUSH
14619: EMPTY
14620: LIST
14621: LIST
14622: PPUSH
14623: CALL_OW 69
14627: ST_TO_ADDR
// ComStop ( pom1 ) ;
14628: LD_VAR 0 2
14632: PPUSH
14633: CALL_OW 141
// InGameOn ;
14637: CALL_OW 8
// CenterOnUnits ( [ pop ] ) ;
14641: LD_EXP 26
14645: PUSH
14646: EMPTY
14647: LIST
14648: PPUSH
14649: CALL_OW 85
// ComMoveUnit ( pop , pom ) ;
14653: LD_EXP 26
14657: PPUSH
14658: LD_VAR 0 1
14662: PPUSH
14663: CALL_OW 112
// while GetDistUnits ( pop , pom ) > 3 do
14667: LD_EXP 26
14671: PPUSH
14672: LD_VAR 0 1
14676: PPUSH
14677: CALL_OW 296
14681: PUSH
14682: LD_INT 3
14684: GREATER
14685: IFFALSE 14696
// wait ( 0 0$1 ) ;
14687: LD_INT 35
14689: PPUSH
14690: CALL_OW 67
14694: GO 14667
// ComTurnUnit ( pom , pop ) ;
14696: LD_VAR 0 1
14700: PPUSH
14701: LD_EXP 26
14705: PPUSH
14706: CALL_OW 119
// CenterOnUnits ( [ pop ] ) ;
14710: LD_EXP 26
14714: PUSH
14715: EMPTY
14716: LIST
14717: PPUSH
14718: CALL_OW 85
// InGameOff ;
14722: CALL_OW 9
// DialogueOn ;
14726: CALL_OW 6
// interface_hidden := true ;
14730: LD_ADDR_OWVAR 54
14734: PUSH
14735: LD_INT 1
14737: ST_TO_ADDR
// if GetDistUnits ( pop , bur ) <= 10 then
14738: LD_EXP 26
14742: PPUSH
14743: LD_EXP 27
14747: PPUSH
14748: CALL_OW 296
14752: PUSH
14753: LD_INT 10
14755: LESSEQUAL
14756: IFFALSE 14764
// dialog_popov_s_burlakem else
14758: CALL 14795 0 0
14762: GO 14768
// dialog_popov_bez_burlaka ;
14764: CALL 14923 0 0
// stav_omikron = 9 ;
14768: LD_ADDR_EXP 37
14772: PUSH
14773: LD_INT 9
14775: ST_TO_ADDR
// interface_hidden := false ;
14776: LD_ADDR_OWVAR 54
14780: PUSH
14781: LD_INT 0
14783: ST_TO_ADDR
// DialogueOff ;
14784: CALL_OW 7
// totalni_ukonceni_mise_v_ingame_videu ;
14788: CALL 9699 0 0
// end ;
14792: PPOPN 2
14794: END
// function dialog_popov_s_burlakem ; begin
14795: LD_INT 0
14797: PPUSH
// Say ( bur , D10a-Bur-1 ) ;
14798: LD_EXP 27
14802: PPUSH
14803: LD_STRING D10a-Bur-1
14805: PPUSH
14806: CALL_OW 88
// Say ( pop , D10a-Pop-1 ) ;
14810: LD_EXP 26
14814: PPUSH
14815: LD_STRING D10a-Pop-1
14817: PPUSH
14818: CALL_OW 88
// Say ( bur , D10a-Bur-2 ) ;
14822: LD_EXP 27
14826: PPUSH
14827: LD_STRING D10a-Bur-2
14829: PPUSH
14830: CALL_OW 88
// Say ( pop , D10a-Pop-2 ) ;
14834: LD_EXP 26
14838: PPUSH
14839: LD_STRING D10a-Pop-2
14841: PPUSH
14842: CALL_OW 88
// Say ( bur , D10a-Bur-3 ) ;
14846: LD_EXP 27
14850: PPUSH
14851: LD_STRING D10a-Bur-3
14853: PPUSH
14854: CALL_OW 88
// Say ( pop , D10a-Pop-3 ) ;
14858: LD_EXP 26
14862: PPUSH
14863: LD_STRING D10a-Pop-3
14865: PPUSH
14866: CALL_OW 88
// Say ( bur , D10a-Bur-4 ) ;
14870: LD_EXP 27
14874: PPUSH
14875: LD_STRING D10a-Bur-4
14877: PPUSH
14878: CALL_OW 88
// Say ( pop , D10a-Pop-4 ) ;
14882: LD_EXP 26
14886: PPUSH
14887: LD_STRING D10a-Pop-4
14889: PPUSH
14890: CALL_OW 88
// Say ( bur , D10a-Bur-5 ) ;
14894: LD_EXP 27
14898: PPUSH
14899: LD_STRING D10a-Bur-5
14901: PPUSH
14902: CALL_OW 88
// Say ( pop , D10a-Pop-5 ) ;
14906: LD_EXP 26
14910: PPUSH
14911: LD_STRING D10a-Pop-5
14913: PPUSH
14914: CALL_OW 88
// end ;
14918: LD_VAR 0 1
14922: RET
// function dialog_popov_bez_burlaka ; var pom ; begin
14923: LD_INT 0
14925: PPUSH
14926: PPUSH
// pom = FilterUnitsInArea ( Pop_area , [ [ f_side , You ] , [ f_type , unit_human ] , [ f_sex , sex_male ] ] ) ;
14927: LD_ADDR_VAR 0 2
14931: PUSH
14932: LD_INT 15
14934: PPUSH
14935: LD_INT 22
14937: PUSH
14938: LD_EXP 1
14942: PUSH
14943: EMPTY
14944: LIST
14945: LIST
14946: PUSH
14947: LD_INT 21
14949: PUSH
14950: LD_INT 1
14952: PUSH
14953: EMPTY
14954: LIST
14955: LIST
14956: PUSH
14957: LD_INT 26
14959: PUSH
14960: LD_INT 1
14962: PUSH
14963: EMPTY
14964: LIST
14965: LIST
14966: PUSH
14967: EMPTY
14968: LIST
14969: LIST
14970: LIST
14971: PPUSH
14972: CALL_OW 70
14976: ST_TO_ADDR
// if pom = 0 then
14977: LD_VAR 0 2
14981: PUSH
14982: LD_INT 0
14984: EQUAL
14985: IFFALSE 14989
// exit ;
14987: GO 15109
// Say ( pom , D10b-RSol1-1 ) ;
14989: LD_VAR 0 2
14993: PPUSH
14994: LD_STRING D10b-RSol1-1
14996: PPUSH
14997: CALL_OW 88
// Say ( pop , D10b-Pop-1 ) ;
15001: LD_EXP 26
15005: PPUSH
15006: LD_STRING D10b-Pop-1
15008: PPUSH
15009: CALL_OW 88
// Say ( pom , D10b-RSol1-2 ) ;
15013: LD_VAR 0 2
15017: PPUSH
15018: LD_STRING D10b-RSol1-2
15020: PPUSH
15021: CALL_OW 88
// SayRadio ( pop , D10b-Pop-2 ) ;
15025: LD_EXP 26
15029: PPUSH
15030: LD_STRING D10b-Pop-2
15032: PPUSH
15033: CALL_OW 94
// Say ( bur , D10b-Bur-2 ) ;
15037: LD_EXP 27
15041: PPUSH
15042: LD_STRING D10b-Bur-2
15044: PPUSH
15045: CALL_OW 88
// SayRadio ( pop , D10b-Pop-3 ) ;
15049: LD_EXP 26
15053: PPUSH
15054: LD_STRING D10b-Pop-3
15056: PPUSH
15057: CALL_OW 94
// Say ( bur , D10b-Bur-3 ) ;
15061: LD_EXP 27
15065: PPUSH
15066: LD_STRING D10b-Bur-3
15068: PPUSH
15069: CALL_OW 88
// SayRadio ( pop , D10b-Pop-4 ) ;
15073: LD_EXP 26
15077: PPUSH
15078: LD_STRING D10b-Pop-4
15080: PPUSH
15081: CALL_OW 94
// Say ( bur , D10b-Bur-4 ) ;
15085: LD_EXP 27
15089: PPUSH
15090: LD_STRING D10b-Bur-4
15092: PPUSH
15093: CALL_OW 88
// SayRadio ( pop , D10b-Pop-5 ) ;
15097: LD_EXP 26
15101: PPUSH
15102: LD_STRING D10b-Pop-5
15104: PPUSH
15105: CALL_OW 94
// end ;
15109: LD_VAR 0 1
15113: RET
// every 0 0$1 trigger stav_omikron in [ 0 , 1 , 2 , 3 ] do var pom , i , upoz , pom1 , pom2 , pom3 ; var dr_pom1 , dr_pom2 , dr_pom3 ; var dr_pom ;
15114: LD_EXP 37
15118: PUSH
15119: LD_INT 0
15121: PUSH
15122: LD_INT 1
15124: PUSH
15125: LD_INT 2
15127: PUSH
15128: LD_INT 3
15130: PUSH
15131: EMPTY
15132: LIST
15133: LIST
15134: LIST
15135: LIST
15136: IN
15137: IFFALSE 15897
15139: GO 15141
15141: DISABLE
15142: LD_INT 0
15144: PPUSH
15145: PPUSH
15146: PPUSH
15147: PPUSH
15148: PPUSH
15149: PPUSH
15150: PPUSH
15151: PPUSH
15152: PPUSH
15153: PPUSH
// begin upoz = false ;
15154: LD_ADDR_VAR 0 3
15158: PUSH
15159: LD_INT 0
15161: ST_TO_ADDR
// pom = FilterUnitsInArea ( Om_attack , [ [ f_side , You ] , f_not , [ f_type , unit_building ] ] ) ;
15162: LD_ADDR_VAR 0 1
15166: PUSH
15167: LD_INT 17
15169: PPUSH
15170: LD_INT 22
15172: PUSH
15173: LD_EXP 1
15177: PUSH
15178: EMPTY
15179: LIST
15180: LIST
15181: PUSH
15182: LD_INT 3
15184: PUSH
15185: LD_INT 21
15187: PUSH
15188: LD_INT 3
15190: PUSH
15191: EMPTY
15192: LIST
15193: LIST
15194: PUSH
15195: EMPTY
15196: LIST
15197: LIST
15198: LIST
15199: PPUSH
15200: CALL_OW 70
15204: ST_TO_ADDR
// dr_pom = FilterUnitsInArea ( Om_attack , [ [ f_side , You ] , [ f_type , unit_building ] ] ) ;
15205: LD_ADDR_VAR 0 10
15209: PUSH
15210: LD_INT 17
15212: PPUSH
15213: LD_INT 22
15215: PUSH
15216: LD_EXP 1
15220: PUSH
15221: EMPTY
15222: LIST
15223: LIST
15224: PUSH
15225: LD_INT 21
15227: PUSH
15228: LD_INT 3
15230: PUSH
15231: EMPTY
15232: LIST
15233: LIST
15234: PUSH
15235: EMPTY
15236: LIST
15237: LIST
15238: PPUSH
15239: CALL_OW 70
15243: ST_TO_ADDR
// for i in dr_pom do
15244: LD_ADDR_VAR 0 2
15248: PUSH
15249: LD_VAR 0 10
15253: PUSH
15254: FOR_IN
15255: IFFALSE 15280
// pom = pom union UnitsInside ( i ) ;
15257: LD_ADDR_VAR 0 1
15261: PUSH
15262: LD_VAR 0 1
15266: PUSH
15267: LD_VAR 0 2
15271: PPUSH
15272: CALL_OW 313
15276: UNION
15277: ST_TO_ADDR
15278: GO 15254
15280: POP
15281: POP
// if pom then
15282: LD_VAR 0 1
15286: IFFALSE 15335
// for i in pom do
15288: LD_ADDR_VAR 0 2
15292: PUSH
15293: LD_VAR 0 1
15297: PUSH
15298: FOR_IN
15299: IFFALSE 15333
// if Getside ( Attacks ( i ) ) = Amici then
15301: LD_VAR 0 2
15305: PPUSH
15306: CALL_OW 320
15310: PPUSH
15311: CALL_OW 255
15315: PUSH
15316: LD_EXP 4
15320: EQUAL
15321: IFFALSE 15331
// upoz = true ;
15323: LD_ADDR_VAR 0 3
15327: PUSH
15328: LD_INT 1
15330: ST_TO_ADDR
15331: GO 15298
15333: POP
15334: POP
// if upoz then
15335: LD_VAR 0 3
15339: IFFALSE 15896
// begin DialogueOn ;
15341: CALL_OW 6
// interface_hidden := true ;
15345: LD_ADDR_OWVAR 54
15349: PUSH
15350: LD_INT 1
15352: ST_TO_ADDR
// if IsOK ( gny ) then
15353: LD_EXP 29
15357: PPUSH
15358: CALL_OW 302
15362: IFFALSE 15390
// begin Say ( gny , D11-Gny-1 ) ;
15364: LD_EXP 29
15368: PPUSH
15369: LD_STRING D11-Gny-1
15371: PPUSH
15372: CALL_OW 88
// Say ( bur , D11-Bur-1 ) ;
15376: LD_EXP 27
15380: PPUSH
15381: LD_STRING D11-Bur-1
15383: PPUSH
15384: CALL_OW 88
// end else
15388: GO 15402
// SayRadio ( kur , D11-Kur-1 ) ;
15390: LD_EXP 25
15394: PPUSH
15395: LD_STRING D11-Kur-1
15397: PPUSH
15398: CALL_OW 94
// interface_hidden := true ;
15402: LD_ADDR_OWVAR 54
15406: PUSH
15407: LD_INT 1
15409: ST_TO_ADDR
// DialogueOff ;
15410: CALL_OW 7
// InGameOn ;
15414: CALL_OW 8
// repeat pom1 = FilterUnitsInArea ( om_at_1 , [ [ f_side , you ] , f_not , [ f_type , unit_building ] ] ) ;
15418: LD_ADDR_VAR 0 4
15422: PUSH
15423: LD_INT 18
15425: PPUSH
15426: LD_INT 22
15428: PUSH
15429: LD_EXP 1
15433: PUSH
15434: EMPTY
15435: LIST
15436: LIST
15437: PUSH
15438: LD_INT 3
15440: PUSH
15441: LD_INT 21
15443: PUSH
15444: LD_INT 3
15446: PUSH
15447: EMPTY
15448: LIST
15449: LIST
15450: PUSH
15451: EMPTY
15452: LIST
15453: LIST
15454: LIST
15455: PPUSH
15456: CALL_OW 70
15460: ST_TO_ADDR
// dr_pom1 = FilterUnitsInArea ( om_at_1 , [ [ f_side , you ] , [ f_type , unit_building ] ] ) ;
15461: LD_ADDR_VAR 0 7
15465: PUSH
15466: LD_INT 18
15468: PPUSH
15469: LD_INT 22
15471: PUSH
15472: LD_EXP 1
15476: PUSH
15477: EMPTY
15478: LIST
15479: LIST
15480: PUSH
15481: LD_INT 21
15483: PUSH
15484: LD_INT 3
15486: PUSH
15487: EMPTY
15488: LIST
15489: LIST
15490: PUSH
15491: EMPTY
15492: LIST
15493: LIST
15494: PPUSH
15495: CALL_OW 70
15499: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( om_at_2 , [ [ f_side , you ] , f_not , [ f_type , unit_building ] ] ) ;
15500: LD_ADDR_VAR 0 5
15504: PUSH
15505: LD_INT 19
15507: PPUSH
15508: LD_INT 22
15510: PUSH
15511: LD_EXP 1
15515: PUSH
15516: EMPTY
15517: LIST
15518: LIST
15519: PUSH
15520: LD_INT 3
15522: PUSH
15523: LD_INT 21
15525: PUSH
15526: LD_INT 3
15528: PUSH
15529: EMPTY
15530: LIST
15531: LIST
15532: PUSH
15533: EMPTY
15534: LIST
15535: LIST
15536: LIST
15537: PPUSH
15538: CALL_OW 70
15542: ST_TO_ADDR
// dr_pom2 = FilterUnitsInArea ( om_at_2 , [ [ f_side , you ] , [ f_type , unit_building ] ] ) ;
15543: LD_ADDR_VAR 0 8
15547: PUSH
15548: LD_INT 19
15550: PPUSH
15551: LD_INT 22
15553: PUSH
15554: LD_EXP 1
15558: PUSH
15559: EMPTY
15560: LIST
15561: LIST
15562: PUSH
15563: LD_INT 21
15565: PUSH
15566: LD_INT 3
15568: PUSH
15569: EMPTY
15570: LIST
15571: LIST
15572: PUSH
15573: EMPTY
15574: LIST
15575: LIST
15576: PPUSH
15577: CALL_OW 70
15581: ST_TO_ADDR
// pom3 = FilterUnitsInArea ( om_at_3 , [ [ f_side , you ] , f_not , [ f_type , unit_building ] ] ) ;
15582: LD_ADDR_VAR 0 6
15586: PUSH
15587: LD_INT 37
15589: PPUSH
15590: LD_INT 22
15592: PUSH
15593: LD_EXP 1
15597: PUSH
15598: EMPTY
15599: LIST
15600: LIST
15601: PUSH
15602: LD_INT 3
15604: PUSH
15605: LD_INT 21
15607: PUSH
15608: LD_INT 3
15610: PUSH
15611: EMPTY
15612: LIST
15613: LIST
15614: PUSH
15615: EMPTY
15616: LIST
15617: LIST
15618: LIST
15619: PPUSH
15620: CALL_OW 70
15624: ST_TO_ADDR
// dr_pom3 = FilterUnitsInArea ( om_at_3 , [ [ f_side , you ] , [ f_type , unit_building ] ] ) ;
15625: LD_ADDR_VAR 0 9
15629: PUSH
15630: LD_INT 37
15632: PPUSH
15633: LD_INT 22
15635: PUSH
15636: LD_EXP 1
15640: PUSH
15641: EMPTY
15642: LIST
15643: LIST
15644: PUSH
15645: LD_INT 21
15647: PUSH
15648: LD_INT 3
15650: PUSH
15651: EMPTY
15652: LIST
15653: LIST
15654: PUSH
15655: EMPTY
15656: LIST
15657: LIST
15658: PPUSH
15659: CALL_OW 70
15663: ST_TO_ADDR
// ComMoveToArea ( pom1 , om_ven_3 ) ;
15664: LD_VAR 0 4
15668: PPUSH
15669: LD_INT 31
15671: PPUSH
15672: CALL_OW 113
// for i in dr_pom1 do
15676: LD_ADDR_VAR 0 2
15680: PUSH
15681: LD_VAR 0 7
15685: PUSH
15686: FOR_IN
15687: IFFALSE 15727
// begin dr_pom = UnitsInside ( i ) ;
15689: LD_ADDR_VAR 0 10
15693: PUSH
15694: LD_VAR 0 2
15698: PPUSH
15699: CALL_OW 313
15703: ST_TO_ADDR
// ComExitBuilding ( dr_pom ) ;
15704: LD_VAR 0 10
15708: PPUSH
15709: CALL_OW 122
// AddComMoveToArea ( dr_pom , om_ven_1 ) ;
15713: LD_VAR 0 10
15717: PPUSH
15718: LD_INT 29
15720: PPUSH
15721: CALL_OW 173
// end ;
15725: GO 15686
15727: POP
15728: POP
// ComMoveToArea ( pom2 , om_zone ) ;
15729: LD_VAR 0 5
15733: PPUSH
15734: LD_INT 8
15736: PPUSH
15737: CALL_OW 113
// for i in dr_pom2 do
15741: LD_ADDR_VAR 0 2
15745: PUSH
15746: LD_VAR 0 8
15750: PUSH
15751: FOR_IN
15752: IFFALSE 15792
// begin dr_pom = UnitsInside ( i ) ;
15754: LD_ADDR_VAR 0 10
15758: PUSH
15759: LD_VAR 0 2
15763: PPUSH
15764: CALL_OW 313
15768: ST_TO_ADDR
// ComExitBuilding ( dr_pom ) ;
15769: LD_VAR 0 10
15773: PPUSH
15774: CALL_OW 122
// AddComMoveToArea ( dr_pom , om_ven_2 ) ;
15778: LD_VAR 0 10
15782: PPUSH
15783: LD_INT 30
15785: PPUSH
15786: CALL_OW 173
// end ;
15790: GO 15751
15792: POP
15793: POP
// ComMoveToArea ( pom3 , om_zone ) ;
15794: LD_VAR 0 6
15798: PPUSH
15799: LD_INT 8
15801: PPUSH
15802: CALL_OW 113
// for i in dr_pom3 do
15806: LD_ADDR_VAR 0 2
15810: PUSH
15811: LD_VAR 0 9
15815: PUSH
15816: FOR_IN
15817: IFFALSE 15857
// begin dr_pom = UnitsInside ( i ) ;
15819: LD_ADDR_VAR 0 10
15823: PUSH
15824: LD_VAR 0 2
15828: PPUSH
15829: CALL_OW 313
15833: ST_TO_ADDR
// ComExitBuilding ( dr_pom ) ;
15834: LD_VAR 0 10
15838: PPUSH
15839: CALL_OW 122
// AddComMoveToArea ( dr_pom , om_ven_3 ) ;
15843: LD_VAR 0 10
15847: PPUSH
15848: LD_INT 31
15850: PPUSH
15851: CALL_OW 173
// end ;
15855: GO 15816
15857: POP
15858: POP
// wait ( 0 0$3 ) ;
15859: LD_INT 105
15861: PPUSH
15862: CALL_OW 67
// until not ( pom1 or pom3 or pom3 ) ;
15866: LD_VAR 0 4
15870: PUSH
15871: LD_VAR 0 6
15875: OR
15876: PUSH
15877: LD_VAR 0 6
15881: OR
15882: NOT
15883: IFFALSE 15418
// wait ( 0 0$4 ) ;
15885: LD_INT 140
15887: PPUSH
15888: CALL_OW 67
// InGameOff ;
15892: CALL_OW 9
// end ; enable ;
15896: ENABLE
// end ;
15897: PPOPN 10
15899: END
// every 0 0$1 trigger stav_omikron in [ 4 , 5 , 6 ] do var pom , pom1 , pom2 , i , AreaNotCleared ;
15900: LD_EXP 37
15904: PUSH
15905: LD_INT 4
15907: PUSH
15908: LD_INT 5
15910: PUSH
15911: LD_INT 6
15913: PUSH
15914: EMPTY
15915: LIST
15916: LIST
15917: LIST
15918: IN
15919: IFFALSE 16352
15921: GO 15923
15923: DISABLE
15924: LD_INT 0
15926: PPUSH
15927: PPUSH
15928: PPUSH
15929: PPUSH
15930: PPUSH
// begin pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_human ] , [ f_or , [ f_side , You ] , [ f_side , You3 ] ] ] ) ;
15931: LD_ADDR_VAR 0 1
15935: PUSH
15936: LD_INT 20
15938: PPUSH
15939: LD_INT 21
15941: PUSH
15942: LD_INT 1
15944: PUSH
15945: EMPTY
15946: LIST
15947: LIST
15948: PUSH
15949: LD_INT 2
15951: PUSH
15952: LD_INT 22
15954: PUSH
15955: LD_EXP 1
15959: PUSH
15960: EMPTY
15961: LIST
15962: LIST
15963: PUSH
15964: LD_INT 22
15966: PUSH
15967: LD_EXP 3
15971: PUSH
15972: EMPTY
15973: LIST
15974: LIST
15975: PUSH
15976: EMPTY
15977: LIST
15978: LIST
15979: LIST
15980: PUSH
15981: EMPTY
15982: LIST
15983: LIST
15984: PPUSH
15985: CALL_OW 70
15989: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_vehicle ] , [ f_or , [ f_side , You ] , [ f_side , You3 ] ] ] ) ;
15990: LD_ADDR_VAR 0 3
15994: PUSH
15995: LD_INT 20
15997: PPUSH
15998: LD_INT 21
16000: PUSH
16001: LD_INT 2
16003: PUSH
16004: EMPTY
16005: LIST
16006: LIST
16007: PUSH
16008: LD_INT 2
16010: PUSH
16011: LD_INT 22
16013: PUSH
16014: LD_EXP 1
16018: PUSH
16019: EMPTY
16020: LIST
16021: LIST
16022: PUSH
16023: LD_INT 22
16025: PUSH
16026: LD_EXP 3
16030: PUSH
16031: EMPTY
16032: LIST
16033: LIST
16034: PUSH
16035: EMPTY
16036: LIST
16037: LIST
16038: LIST
16039: PUSH
16040: EMPTY
16041: LIST
16042: LIST
16043: PPUSH
16044: CALL_OW 70
16048: ST_TO_ADDR
// for i in pom2 do
16049: LD_ADDR_VAR 0 4
16053: PUSH
16054: LD_VAR 0 3
16058: PUSH
16059: FOR_IN
16060: IFFALSE 16095
// if UnitsInside ( i ) <> 0 then
16062: LD_VAR 0 4
16066: PPUSH
16067: CALL_OW 313
16071: PUSH
16072: LD_INT 0
16074: NONEQUAL
16075: IFFALSE 16093
// pom = pom ^ i ;
16077: LD_ADDR_VAR 0 1
16081: PUSH
16082: LD_VAR 0 1
16086: PUSH
16087: LD_VAR 0 4
16091: ADD
16092: ST_TO_ADDR
16093: GO 16059
16095: POP
16096: POP
// if pom > 0 then
16097: LD_VAR 0 1
16101: PUSH
16102: LD_INT 0
16104: GREATER
16105: IFFALSE 16351
// begin posli_lidi_zpet_omicron ;
16107: CALL 9018 0 0
// wait ( 0 0$1 ) ;
16111: LD_INT 35
16113: PPUSH
16114: CALL_OW 67
// Say ( kur , D12-Kur-1 ) ;
16118: LD_EXP 25
16122: PPUSH
16123: LD_STRING D12-Kur-1
16125: PPUSH
16126: CALL_OW 88
// AreaNotCleared = 1 ;
16130: LD_ADDR_VAR 0 5
16134: PUSH
16135: LD_INT 1
16137: ST_TO_ADDR
// while AreaNotCleared do
16138: LD_VAR 0 5
16142: IFFALSE 16351
// begin wait ( 0 0$2 ) ;
16144: LD_INT 70
16146: PPUSH
16147: CALL_OW 67
// posli_lidi_zpet_omicron ;
16151: CALL 9018 0 0
// pom = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_human ] , [ f_or , [ f_side , You ] , [ f_side , You3 ] ] ] ) ;
16155: LD_ADDR_VAR 0 1
16159: PUSH
16160: LD_INT 20
16162: PPUSH
16163: LD_INT 21
16165: PUSH
16166: LD_INT 1
16168: PUSH
16169: EMPTY
16170: LIST
16171: LIST
16172: PUSH
16173: LD_INT 2
16175: PUSH
16176: LD_INT 22
16178: PUSH
16179: LD_EXP 1
16183: PUSH
16184: EMPTY
16185: LIST
16186: LIST
16187: PUSH
16188: LD_INT 22
16190: PUSH
16191: LD_EXP 3
16195: PUSH
16196: EMPTY
16197: LIST
16198: LIST
16199: PUSH
16200: EMPTY
16201: LIST
16202: LIST
16203: LIST
16204: PUSH
16205: EMPTY
16206: LIST
16207: LIST
16208: PPUSH
16209: CALL_OW 70
16213: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Om_ven , [ [ f_type , unit_vehicle ] , [ f_or , [ f_side , You ] , [ f_side , You3 ] ] ] ) ;
16214: LD_ADDR_VAR 0 3
16218: PUSH
16219: LD_INT 20
16221: PPUSH
16222: LD_INT 21
16224: PUSH
16225: LD_INT 2
16227: PUSH
16228: EMPTY
16229: LIST
16230: LIST
16231: PUSH
16232: LD_INT 2
16234: PUSH
16235: LD_INT 22
16237: PUSH
16238: LD_EXP 1
16242: PUSH
16243: EMPTY
16244: LIST
16245: LIST
16246: PUSH
16247: LD_INT 22
16249: PUSH
16250: LD_EXP 3
16254: PUSH
16255: EMPTY
16256: LIST
16257: LIST
16258: PUSH
16259: EMPTY
16260: LIST
16261: LIST
16262: LIST
16263: PUSH
16264: EMPTY
16265: LIST
16266: LIST
16267: PPUSH
16268: CALL_OW 70
16272: ST_TO_ADDR
// for i in pom2 do
16273: LD_ADDR_VAR 0 4
16277: PUSH
16278: LD_VAR 0 3
16282: PUSH
16283: FOR_IN
16284: IFFALSE 16319
// if UnitsInside ( i ) <> 0 then
16286: LD_VAR 0 4
16290: PPUSH
16291: CALL_OW 313
16295: PUSH
16296: LD_INT 0
16298: NONEQUAL
16299: IFFALSE 16317
// pom = pom ^ i ;
16301: LD_ADDR_VAR 0 1
16305: PUSH
16306: LD_VAR 0 1
16310: PUSH
16311: LD_VAR 0 4
16315: ADD
16316: ST_TO_ADDR
16317: GO 16283
16319: POP
16320: POP
// if pom > 0 then
16321: LD_VAR 0 1
16325: PUSH
16326: LD_INT 0
16328: GREATER
16329: IFFALSE 16341
// AreaNotCleared = 1 else
16331: LD_ADDR_VAR 0 5
16335: PUSH
16336: LD_INT 1
16338: ST_TO_ADDR
16339: GO 16349
// AreaNotCleared = 0 ;
16341: LD_ADDR_VAR 0 5
16345: PUSH
16346: LD_INT 0
16348: ST_TO_ADDR
// end ;
16349: GO 16138
// end ; enable ;
16351: ENABLE
// end ;
16352: PPOPN 5
16354: END
// export function hlaska_lhani ; begin
16355: LD_INT 0
16357: PPUSH
// DialogueOn ;
16358: CALL_OW 6
// interface_hidden := true ;
16362: LD_ADDR_OWVAR 54
16366: PUSH
16367: LD_INT 1
16369: ST_TO_ADDR
// Say ( kur , D6d-Kur-1 ) ;
16370: LD_EXP 25
16374: PPUSH
16375: LD_STRING D6d-Kur-1
16377: PPUSH
16378: CALL_OW 88
// interface_hidden := false ;
16382: LD_ADDR_OWVAR 54
16386: PUSH
16387: LD_INT 0
16389: ST_TO_ADDR
// DialogueOff ;
16390: CALL_OW 7
// end ;
16394: LD_VAR 0 1
16398: RET
// export function dialog_upoz ; begin
16399: LD_INT 0
16401: PPUSH
// DialogueOn ;
16402: CALL_OW 6
// interface_hidden := true ;
16406: LD_ADDR_OWVAR 54
16410: PUSH
16411: LD_INT 1
16413: ST_TO_ADDR
// SayRadio ( kur , D7a-Kur-1 ) ;
16414: LD_EXP 25
16418: PPUSH
16419: LD_STRING D7a-Kur-1
16421: PPUSH
16422: CALL_OW 94
// interface_hidden := false ;
16426: LD_ADDR_OWVAR 54
16430: PUSH
16431: LD_INT 0
16433: ST_TO_ADDR
// DialogueOff ;
16434: CALL_OW 7
// end ;
16438: LD_VAR 0 1
16442: RET
// every 0 0$1 do var pom , i ; var Ru_Units ;
16443: GO 16445
16445: DISABLE
16446: LD_INT 0
16448: PPUSH
16449: PPUSH
16450: PPUSH
// begin Ru_Units = FilterAllUnits ( [ [ f_side , You ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
16451: LD_ADDR_VAR 0 3
16455: PUSH
16456: LD_INT 22
16458: PUSH
16459: LD_EXP 1
16463: PUSH
16464: EMPTY
16465: LIST
16466: LIST
16467: PUSH
16468: LD_INT 2
16470: PUSH
16471: LD_INT 21
16473: PUSH
16474: LD_INT 1
16476: PUSH
16477: EMPTY
16478: LIST
16479: LIST
16480: PUSH
16481: LD_INT 21
16483: PUSH
16484: LD_INT 2
16486: PUSH
16487: EMPTY
16488: LIST
16489: LIST
16490: PUSH
16491: EMPTY
16492: LIST
16493: LIST
16494: LIST
16495: PUSH
16496: EMPTY
16497: LIST
16498: LIST
16499: PPUSH
16500: CALL_OW 69
16504: ST_TO_ADDR
// for i in Ru_Units do
16505: LD_ADDR_VAR 0 2
16509: PUSH
16510: LD_VAR 0 3
16514: PUSH
16515: FOR_IN
16516: IFFALSE 16623
// begin pom = Attacks ( i ) ;
16518: LD_ADDR_VAR 0 1
16522: PUSH
16523: LD_VAR 0 2
16527: PPUSH
16528: CALL_OW 320
16532: ST_TO_ADDR
// if pom <> 0 then
16533: LD_VAR 0 1
16537: PUSH
16538: LD_INT 0
16540: NONEQUAL
16541: IFFALSE 16583
// if Getside ( pom ) in [ You2 , You3 ] then
16543: LD_VAR 0 1
16547: PPUSH
16548: CALL_OW 255
16552: PUSH
16553: LD_EXP 2
16557: PUSH
16558: LD_EXP 3
16562: PUSH
16563: EMPTY
16564: LIST
16565: LIST
16566: IN
16567: IFFALSE 16583
// konstanta_utoceni = konstanta_utoceni + 1 ;
16569: LD_ADDR_EXP 47
16573: PUSH
16574: LD_EXP 47
16578: PUSH
16579: LD_INT 1
16581: PLUS
16582: ST_TO_ADDR
// if pom = pop or pom = kur then
16583: LD_VAR 0 1
16587: PUSH
16588: LD_EXP 26
16592: EQUAL
16593: PUSH
16594: LD_VAR 0 1
16598: PUSH
16599: LD_EXP 25
16603: EQUAL
16604: OR
16605: IFFALSE 16621
// konstanta_utoceni = konstanta_utoceni + 10 ;
16607: LD_ADDR_EXP 47
16611: PUSH
16612: LD_EXP 47
16616: PUSH
16617: LD_INT 10
16619: PLUS
16620: ST_TO_ADDR
// end ;
16621: GO 16515
16623: POP
16624: POP
// if konstanta_utoceni < 10 then
16625: LD_EXP 47
16629: PUSH
16630: LD_INT 10
16632: LESS
16633: IFFALSE 16636
// enable ;
16635: ENABLE
// end ;
16636: PPOPN 3
16638: END
// every 0 0$1 trigger konstanta_utoceni >= 10 do
16639: LD_EXP 47
16643: PUSH
16644: LD_INT 10
16646: GREATEREQUAL
16647: IFFALSE 16656
16649: GO 16651
16651: DISABLE
// begin konec_mise_utok ;
16652: CALL 2885 0 0
// end ;
16656: END
// export function dialog_scholtze_umrel ; var i , pom , pom1 ; begin
16657: LD_INT 0
16659: PPUSH
16660: PPUSH
16661: PPUSH
16662: PPUSH
// pom = 0 ;
16663: LD_ADDR_VAR 0 3
16667: PUSH
16668: LD_INT 0
16670: ST_TO_ADDR
// DialogueOn ;
16671: CALL_OW 6
// interface_hidden := true ;
16675: LD_ADDR_OWVAR 54
16679: PUSH
16680: LD_INT 1
16682: ST_TO_ADDR
// ForceSay ( schol2 , D4b-Sch-1 ) ;
16683: LD_EXP 32
16687: PPUSH
16688: LD_STRING D4b-Sch-1
16690: PPUSH
16691: CALL_OW 91
// pom = FilterAllUnits ( [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
16695: LD_ADDR_VAR 0 3
16699: PUSH
16700: LD_INT 22
16702: PUSH
16703: LD_EXP 4
16707: PUSH
16708: EMPTY
16709: LIST
16710: LIST
16711: PUSH
16712: LD_INT 21
16714: PUSH
16715: LD_INT 1
16717: PUSH
16718: EMPTY
16719: LIST
16720: LIST
16721: PUSH
16722: EMPTY
16723: LIST
16724: LIST
16725: PPUSH
16726: CALL_OW 69
16730: ST_TO_ADDR
// pom1 = NearestUnitToUnit ( pom , schol2 ) ;
16731: LD_ADDR_VAR 0 4
16735: PUSH
16736: LD_VAR 0 3
16740: PPUSH
16741: LD_EXP 32
16745: PPUSH
16746: CALL_OW 74
16750: ST_TO_ADDR
// if pom1 <> 0 then
16751: LD_VAR 0 4
16755: PUSH
16756: LD_INT 0
16758: NONEQUAL
16759: IFFALSE 16773
// SayNoName ( pom1 , D4b-Sol1-1 ) ;
16761: LD_VAR 0 4
16765: PPUSH
16766: LD_STRING D4b-Sol1-1
16768: PPUSH
16769: CALL_OW 90
// pom1 = NearestUnitToUnit ( pom diff pom1 , pom1 ) ;
16773: LD_ADDR_VAR 0 4
16777: PUSH
16778: LD_VAR 0 3
16782: PUSH
16783: LD_VAR 0 4
16787: DIFF
16788: PPUSH
16789: LD_VAR 0 4
16793: PPUSH
16794: CALL_OW 74
16798: ST_TO_ADDR
// SayNoName ( pom1 , D4b-Sol2-1 ) ;
16799: LD_VAR 0 4
16803: PPUSH
16804: LD_STRING D4b-Sol2-1
16806: PPUSH
16807: CALL_OW 90
// ForceSay ( schol2 , D4b-Sch-2 ) ;
16811: LD_EXP 32
16815: PPUSH
16816: LD_STRING D4b-Sch-2
16818: PPUSH
16819: CALL_OW 91
// Say ( bur , D4b-Bur-2 ) ;
16823: LD_EXP 27
16827: PPUSH
16828: LD_STRING D4b-Bur-2
16830: PPUSH
16831: CALL_OW 88
// SetLives ( schol2 , 0 ) ;
16835: LD_EXP 32
16839: PPUSH
16840: LD_INT 0
16842: PPUSH
16843: CALL_OW 234
// ChangeMissionObjectives ( MScholtzeDel ) ;
16847: LD_STRING MScholtzeDel
16849: PPUSH
16850: CALL_OW 337
// interface_hidden := false ;
16854: LD_ADDR_OWVAR 54
16858: PUSH
16859: LD_INT 0
16861: ST_TO_ADDR
// DialogueOff ;
16862: CALL_OW 7
// end ;
16866: LD_VAR 0 1
16870: RET
// on UnitGoesToRed ( un ) do begin if un = schol2 then
16871: LD_VAR 0 1
16875: PUSH
16876: LD_EXP 32
16880: EQUAL
16881: IFFALSE 16897
// if kecy_scholtze_nalezen then
16883: LD_EXP 42
16887: IFFALSE 16893
// exit else
16889: GO 16897
16891: GO 16897
// dialog_scholtze_umrel ;
16893: CALL 16657 0 0
// end ;
16897: PPOPN 1
16899: END
// every 0 0$3 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_oil_power ] ] ) > 0 do var pom ;
16900: LD_INT 22
16902: PUSH
16903: LD_EXP 1
16907: PUSH
16908: EMPTY
16909: LIST
16910: LIST
16911: PUSH
16912: LD_INT 30
16914: PUSH
16915: LD_INT 26
16917: PUSH
16918: EMPTY
16919: LIST
16920: LIST
16921: PUSH
16922: EMPTY
16923: LIST
16924: LIST
16925: PPUSH
16926: CALL_OW 69
16930: PUSH
16931: LD_INT 0
16933: GREATER
16934: IFFALSE 17026
16936: GO 16938
16938: DISABLE
16939: LD_INT 0
16941: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_oil_mine ] ] ) ;
16942: LD_ADDR_VAR 0 1
16946: PUSH
16947: LD_INT 22
16949: PUSH
16950: LD_EXP 1
16954: PUSH
16955: EMPTY
16956: LIST
16957: LIST
16958: PUSH
16959: LD_INT 30
16961: PUSH
16962: LD_INT 29
16964: PUSH
16965: EMPTY
16966: LIST
16967: LIST
16968: PUSH
16969: EMPTY
16970: LIST
16971: LIST
16972: PPUSH
16973: CALL_OW 69
16977: ST_TO_ADDR
// if pom > 0 then
16978: LD_VAR 0 1
16982: PUSH
16983: LD_INT 0
16985: GREATER
16986: IFFALSE 17025
// begin while IsConstructed ( pom [ 1 ] ) <> 0 do
16988: LD_VAR 0 1
16992: PUSH
16993: LD_INT 1
16995: ARRAY
16996: PPUSH
16997: CALL_OW 304
17001: PUSH
17002: LD_INT 0
17004: NONEQUAL
17005: IFFALSE 17016
// wait ( 0 0$1 ) ;
17007: LD_INT 35
17009: PPUSH
17010: CALL_OW 67
17014: GO 16988
// Hint ( PowerPlant ) ;
17016: LD_STRING PowerPlant
17018: PPUSH
17019: CALL_OW 339
// end else
17023: GO 17026
// enable ;
17025: ENABLE
// end ;
17026: PPOPN 1
17028: END
// every 0 0$5 trigger FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) > 1 do var pom , pom1 ; var i ; var pocet ;
17029: LD_INT 22
17031: PUSH
17032: LD_EXP 1
17036: PUSH
17037: EMPTY
17038: LIST
17039: LIST
17040: PUSH
17041: LD_INT 30
17043: PUSH
17044: LD_INT 0
17046: PUSH
17047: EMPTY
17048: LIST
17049: LIST
17050: PUSH
17051: EMPTY
17052: LIST
17053: LIST
17054: PPUSH
17055: CALL_OW 69
17059: PUSH
17060: LD_INT 1
17062: GREATER
17063: IFFALSE 17223
17065: GO 17067
17067: DISABLE
17068: LD_INT 0
17070: PPUSH
17071: PPUSH
17072: PPUSH
17073: PPUSH
// begin pocet = 0 ;
17074: LD_ADDR_VAR 0 4
17078: PUSH
17079: LD_INT 0
17081: ST_TO_ADDR
// pom = FilterAllUnits ( [ [ f_side , You ] , [ f_btype , b_depot ] ] ) ;
17082: LD_ADDR_VAR 0 1
17086: PUSH
17087: LD_INT 22
17089: PUSH
17090: LD_EXP 1
17094: PUSH
17095: EMPTY
17096: LIST
17097: LIST
17098: PUSH
17099: LD_INT 30
17101: PUSH
17102: LD_INT 0
17104: PUSH
17105: EMPTY
17106: LIST
17107: LIST
17108: PUSH
17109: EMPTY
17110: LIST
17111: LIST
17112: PPUSH
17113: CALL_OW 69
17117: ST_TO_ADDR
// pom1 = pom ;
17118: LD_ADDR_VAR 0 2
17122: PUSH
17123: LD_VAR 0 1
17127: ST_TO_ADDR
// while pocet < 2 do
17128: LD_VAR 0 4
17132: PUSH
17133: LD_INT 2
17135: LESS
17136: IFFALSE 17216
// begin for i in pom do
17138: LD_ADDR_VAR 0 3
17142: PUSH
17143: LD_VAR 0 1
17147: PUSH
17148: FOR_IN
17149: IFFALSE 17195
// if not IsConstructed ( i ) then
17151: LD_VAR 0 3
17155: PPUSH
17156: CALL_OW 304
17160: NOT
17161: IFFALSE 17193
// begin pocet = pocet + 1 ;
17163: LD_ADDR_VAR 0 4
17167: PUSH
17168: LD_VAR 0 4
17172: PUSH
17173: LD_INT 1
17175: PLUS
17176: ST_TO_ADDR
// pom1 = pom1 diff i ;
17177: LD_ADDR_VAR 0 2
17181: PUSH
17182: LD_VAR 0 2
17186: PUSH
17187: LD_VAR 0 3
17191: DIFF
17192: ST_TO_ADDR
// end ;
17193: GO 17148
17195: POP
17196: POP
// pom = pom1 ;
17197: LD_ADDR_VAR 0 1
17201: PUSH
17202: LD_VAR 0 2
17206: ST_TO_ADDR
// wait ( 0 0$2 ) ;
17207: LD_INT 70
17209: PPUSH
17210: CALL_OW 67
// end ;
17214: GO 17128
// Hint ( Transport1 ) ;
17216: LD_STRING Transport1
17218: PPUSH
17219: CALL_OW 339
// end ;
17223: PPOPN 4
17225: END
// export function chmo_6 ; begin
17226: LD_INT 0
17228: PPUSH
// ChangeMissionObjectives ( M6a ) ;
17229: LD_STRING M6a
17231: PPUSH
17232: CALL_OW 337
// end ;
17236: LD_VAR 0 1
17240: RET
// export function query_refuel ; begin
17241: LD_INT 0
17243: PPUSH
// Query ( QRefuel ) ;
17244: LD_STRING QRefuel
17246: PPUSH
17247: CALL_OW 97
// end ;
17251: LD_VAR 0 1
17255: RET
// every 0 0$6 do var pom ;
17256: GO 17258
17258: DISABLE
17259: LD_INT 0
17261: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
17262: LD_ADDR_VAR 0 1
17266: PUSH
17267: LD_INT 22
17269: PUSH
17270: LD_EXP 1
17274: PUSH
17275: EMPTY
17276: LIST
17277: LIST
17278: PUSH
17279: LD_INT 21
17281: PUSH
17282: LD_INT 1
17284: PUSH
17285: EMPTY
17286: LIST
17287: LIST
17288: PUSH
17289: EMPTY
17290: LIST
17291: LIST
17292: PPUSH
17293: CALL_OW 69
17297: ST_TO_ADDR
// if postavenych_aut >= pom then
17298: LD_EXP 45
17302: PUSH
17303: LD_VAR 0 1
17307: GREATEREQUAL
17308: IFFALSE 17319
// ChangeMissionObjectives ( M3a ) else
17310: LD_STRING M3a
17312: PPUSH
17313: CALL_OW 337
17317: GO 17320
// enable ;
17319: ENABLE
// end ;
17320: PPOPN 1
17322: END
// export function hint_cerpaci_auta ; begin
17323: LD_INT 0
17325: PPUSH
// Hint ( refuelingtrucks ) ;
17326: LD_STRING refuelingtrucks
17328: PPUSH
17329: CALL_OW 339
// end ; end_of_file
17333: LD_VAR 0 1
17337: RET
// export AMERICKA_POMOC_HLIDCE_LIST ; export AMERICKE_POSILY1_LIST ; export AMERICKE_POSILY2_LIST ; export AMERICKE_POSILY3_LIST ; export AMERICKE_POSILY4_LIST ; export AMERICKE_POSILY11_LIST ; export RUSKE_POSILY_NA_OMICRON_LIST ; export RUSKE_POSILY_RIDICI_LIST ; export RU_posily_na_utek ; export RUSI_CERPACI_AUTA_LIST ; export ARABI_KAMIKADZE_LIST ; export ARABI_PRVNI_VLNA ; export ARABI_FLAME_LIST ; export ARABI_SELF_AUTA ; export ARABI_VOJACI ; export ARABI_doraz ; export ARABI_KIROV_POSILY ; export Arabi_komanda1 ; export Arabi_komanda2 ; export Arabi_komanda3 ; export Arabi_komanda4 ; export other_survivors_mise_2 ; var ah , av ; export function get_sex ; begin
17338: LD_INT 0
17340: PPUSH
// if Prob ( 20 ) then
17341: LD_INT 20
17343: PPUSH
17344: CALL_OW 13
17348: IFFALSE 17360
// result = sex_female else
17350: LD_ADDR_VAR 0 1
17354: PUSH
17355: LD_INT 2
17357: ST_TO_ADDR
17358: GO 17368
// result = sex_male ;
17360: LD_ADDR_VAR 0 1
17364: PUSH
17365: LD_INT 1
17367: ST_TO_ADDR
// end ;
17368: LD_VAR 0 1
17372: RET
// export function get_human ( sex , clas , level , name ) ; begin
17373: LD_INT 0
17375: PPUSH
// PrepareHuman ( sex , clas , level ) ;
17376: LD_VAR 0 1
17380: PPUSH
17381: LD_VAR 0 2
17385: PPUSH
17386: LD_VAR 0 3
17390: PPUSH
17391: CALL_OW 380
// hc_name := name ;
17395: LD_ADDR_OWVAR 26
17399: PUSH
17400: LD_VAR 0 4
17404: ST_TO_ADDR
// result := CreateHuman ;
17405: LD_ADDR_VAR 0 5
17409: PUSH
17410: CALL_OW 44
17414: ST_TO_ADDR
// end ;
17415: LD_VAR 0 5
17419: RET
// export function create_americka_pomoc_hlidce ; var pom ; begin
17420: LD_INT 0
17422: PPUSH
17423: PPUSH
// pom = [ ] ;
17424: LD_ADDR_VAR 0 2
17428: PUSH
17429: EMPTY
17430: ST_TO_ADDR
// uc_side = Amici ;
17431: LD_ADDR_OWVAR 20
17435: PUSH
17436: LD_EXP 4
17440: ST_TO_ADDR
// uc_nation = nation_american ;
17441: LD_ADDR_OWVAR 21
17445: PUSH
17446: LD_INT 1
17448: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
17449: LD_ADDR_LOC 23
17453: PUSH
17454: CALL 17338 0 0
17458: PPUSH
17459: LD_INT 3
17461: PPUSH
17462: LD_EXP 11
17466: PUSH
17467: LD_OWVAR 67
17471: ARRAY
17472: PPUSH
17473: LD_STRING 
17475: PPUSH
17476: CALL 17373 0 4
17480: ST_TO_ADDR
// case difficulty of 1 :
17481: LD_OWVAR 67
17485: PUSH
17486: LD_INT 1
17488: DOUBLE
17489: EQUAL
17490: IFTRUE 17494
17492: GO 17529
17494: POP
// begin vc_chassis = us_light_wheeled ;
17495: LD_ADDR_OWVAR 37
17499: PUSH
17500: LD_INT 1
17502: ST_TO_ADDR
// vc_control = control_manual ;
17503: LD_ADDR_OWVAR 38
17507: PUSH
17508: LD_INT 1
17510: ST_TO_ADDR
// vc_engine = engine_solar ;
17511: LD_ADDR_OWVAR 39
17515: PUSH
17516: LD_INT 2
17518: ST_TO_ADDR
// vc_weapon = us_light_gun ;
17519: LD_ADDR_OWVAR 40
17523: PUSH
17524: LD_INT 3
17526: ST_TO_ADDR
// end ; 2 :
17527: GO 17616
17529: LD_INT 2
17531: DOUBLE
17532: EQUAL
17533: IFTRUE 17537
17535: GO 17572
17537: POP
// begin vc_chassis = us_light_wheeled ;
17538: LD_ADDR_OWVAR 37
17542: PUSH
17543: LD_INT 1
17545: ST_TO_ADDR
// vc_control = control_manual ;
17546: LD_ADDR_OWVAR 38
17550: PUSH
17551: LD_INT 1
17553: ST_TO_ADDR
// vc_engine = engine_solar ;
17554: LD_ADDR_OWVAR 39
17558: PUSH
17559: LD_INT 2
17561: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
17562: LD_ADDR_OWVAR 40
17566: PUSH
17567: LD_INT 2
17569: ST_TO_ADDR
// end ; 3 :
17570: GO 17616
17572: LD_INT 3
17574: DOUBLE
17575: EQUAL
17576: IFTRUE 17580
17578: GO 17615
17580: POP
// begin vc_chassis = us_medium_wheeled ;
17581: LD_ADDR_OWVAR 37
17585: PUSH
17586: LD_INT 2
17588: ST_TO_ADDR
// vc_control = control_manual ;
17589: LD_ADDR_OWVAR 38
17593: PUSH
17594: LD_INT 1
17596: ST_TO_ADDR
// vc_engine = engine_combustion ;
17597: LD_ADDR_OWVAR 39
17601: PUSH
17602: LD_INT 1
17604: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
17605: LD_ADDR_OWVAR 40
17609: PUSH
17610: LD_INT 4
17612: ST_TO_ADDR
// end ; end ;
17613: GO 17616
17615: POP
// av = CreateVehicle ;
17616: LD_ADDR_LOC 24
17620: PUSH
17621: CALL_OW 45
17625: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
17626: LD_LOC 23
17630: PPUSH
17631: LD_LOC 24
17635: PPUSH
17636: CALL_OW 52
// pom = pom ^ av ;
17640: LD_ADDR_VAR 0 2
17644: PUSH
17645: LD_VAR 0 2
17649: PUSH
17650: LD_LOC 24
17654: ADD
17655: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17656: LD_ADDR_LOC 23
17660: PUSH
17661: CALL 17338 0 0
17665: PPUSH
17666: LD_INT 1
17668: PPUSH
17669: LD_EXP 11
17673: PUSH
17674: LD_OWVAR 67
17678: ARRAY
17679: PPUSH
17680: LD_STRING 
17682: PPUSH
17683: CALL 17373 0 4
17687: ST_TO_ADDR
// pom = pom ^ ah ;
17688: LD_ADDR_VAR 0 2
17692: PUSH
17693: LD_VAR 0 2
17697: PUSH
17698: LD_LOC 23
17702: ADD
17703: ST_TO_ADDR
// if pom > 2 then
17704: LD_VAR 0 2
17708: PUSH
17709: LD_INT 2
17711: GREATER
17712: IFFALSE 17758
// pom = pom ^ ah = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
17714: LD_ADDR_VAR 0 2
17718: PUSH
17719: LD_VAR 0 2
17723: PUSH
17724: LD_LOC 23
17728: ADD
17729: PUSH
17730: CALL 17338 0 0
17734: PPUSH
17735: LD_INT 1
17737: PPUSH
17738: LD_EXP 11
17742: PUSH
17743: LD_OWVAR 67
17747: ARRAY
17748: PPUSH
17749: LD_STRING 
17751: PPUSH
17752: CALL 17373 0 4
17756: EQUAL
17757: ST_TO_ADDR
// AMERICKA_POMOC_HLIDCE_LIST = pom ;
17758: LD_ADDR_EXP 48
17762: PUSH
17763: LD_VAR 0 2
17767: ST_TO_ADDR
// end ;
17768: LD_VAR 0 1
17772: RET
// export function set_skily_amikum ; var pom , i ; begin
17773: LD_INT 0
17775: PPUSH
17776: PPUSH
17777: PPUSH
// pom = [ Am_sol1 , Am_sol2 , Am_sol3 , Am_sol4 , Am_vb1 , Am_vb2 , Am_vb3 , Am_vb4 ] ;
17778: LD_ADDR_VAR 0 2
17782: PUSH
17783: LD_INT 38
17785: PUSH
17786: LD_INT 39
17788: PUSH
17789: LD_INT 40
17791: PUSH
17792: LD_INT 41
17794: PUSH
17795: LD_INT 29
17797: PUSH
17798: LD_INT 30
17800: PUSH
17801: LD_INT 31
17803: PUSH
17804: LD_INT 32
17806: PUSH
17807: EMPTY
17808: LIST
17809: LIST
17810: LIST
17811: LIST
17812: LIST
17813: LIST
17814: LIST
17815: LIST
17816: ST_TO_ADDR
// for i in pom do
17817: LD_ADDR_VAR 0 3
17821: PUSH
17822: LD_VAR 0 2
17826: PUSH
17827: FOR_IN
17828: IFFALSE 17855
// uprav_cloveka ( i , class_soldier , levely_amici [ difficulty ] ) ;
17830: LD_VAR 0 3
17834: PPUSH
17835: LD_INT 1
17837: PPUSH
17838: LD_EXP 11
17842: PUSH
17843: LD_OWVAR 67
17847: ARRAY
17848: PPUSH
17849: CALL 18170 0 3
17853: GO 17827
17855: POP
17856: POP
// pom = [ Am_me1 , Am_me2 , Am_me3 ] ;
17857: LD_ADDR_VAR 0 2
17861: PUSH
17862: LD_INT 33
17864: PUSH
17865: LD_INT 34
17867: PUSH
17868: LD_INT 35
17870: PUSH
17871: EMPTY
17872: LIST
17873: LIST
17874: LIST
17875: ST_TO_ADDR
// for i in pom do
17876: LD_ADDR_VAR 0 3
17880: PUSH
17881: LD_VAR 0 2
17885: PUSH
17886: FOR_IN
17887: IFFALSE 17914
// uprav_cloveka ( i , class_mechanic , levely_amici [ difficulty ] ) ;
17889: LD_VAR 0 3
17893: PPUSH
17894: LD_INT 3
17896: PPUSH
17897: LD_EXP 11
17901: PUSH
17902: LD_OWVAR 67
17906: ARRAY
17907: PPUSH
17908: CALL 18170 0 3
17912: GO 17886
17914: POP
17915: POP
// uprav_cloveka ( Am_sci1 , class_scientistic , levely_amici [ difficulty ] ) ;
17916: LD_INT 37
17918: PPUSH
17919: LD_INT 4
17921: PPUSH
17922: LD_EXP 11
17926: PUSH
17927: LD_OWVAR 67
17931: ARRAY
17932: PPUSH
17933: CALL 18170 0 3
// uprav_cloveka ( Am_eng1 , class_engineer , levely_amici [ difficulty ] ) ;
17937: LD_INT 36
17939: PPUSH
17940: LD_INT 2
17942: PPUSH
17943: LD_EXP 11
17947: PUSH
17948: LD_OWVAR 67
17952: ARRAY
17953: PPUSH
17954: CALL 18170 0 3
// end ;
17958: LD_VAR 0 1
17962: RET
// function set_skills ( un , skills ) ; begin
17963: LD_INT 0
17965: PPUSH
// SetSkill ( un , skill_combat , skills [ 1 ] ) ;
17966: LD_VAR 0 1
17970: PPUSH
17971: LD_INT 1
17973: PPUSH
17974: LD_VAR 0 2
17978: PUSH
17979: LD_INT 1
17981: ARRAY
17982: PPUSH
17983: CALL_OW 237
// SetSkill ( un , skill_engineering , skills [ 2 ] ) ;
17987: LD_VAR 0 1
17991: PPUSH
17992: LD_INT 2
17994: PPUSH
17995: LD_VAR 0 2
17999: PUSH
18000: LD_INT 2
18002: ARRAY
18003: PPUSH
18004: CALL_OW 237
// SetSkill ( un , skill_mechanical , skills [ 3 ] ) ;
18008: LD_VAR 0 1
18012: PPUSH
18013: LD_INT 3
18015: PPUSH
18016: LD_VAR 0 2
18020: PUSH
18021: LD_INT 3
18023: ARRAY
18024: PPUSH
18025: CALL_OW 237
// SetSkill ( un , skill_scientistic , skills [ 4 ] ) ;
18029: LD_VAR 0 1
18033: PPUSH
18034: LD_INT 4
18036: PPUSH
18037: LD_VAR 0 2
18041: PUSH
18042: LD_INT 4
18044: ARRAY
18045: PPUSH
18046: CALL_OW 237
// end ;
18050: LD_VAR 0 3
18054: RET
// function get_skills ( un ) ; var pom3 , pom4 , pom5 , pom6 ; begin
18055: LD_INT 0
18057: PPUSH
18058: PPUSH
18059: PPUSH
18060: PPUSH
18061: PPUSH
// pom3 := GetSkill ( un , skill_combat ) ;
18062: LD_ADDR_VAR 0 3
18066: PUSH
18067: LD_VAR 0 1
18071: PPUSH
18072: LD_INT 1
18074: PPUSH
18075: CALL_OW 259
18079: ST_TO_ADDR
// pom4 := GetSkill ( un , skill_engineering ) ;
18080: LD_ADDR_VAR 0 4
18084: PUSH
18085: LD_VAR 0 1
18089: PPUSH
18090: LD_INT 2
18092: PPUSH
18093: CALL_OW 259
18097: ST_TO_ADDR
// pom5 := GetSkill ( un , skill_mechanical ) ;
18098: LD_ADDR_VAR 0 5
18102: PUSH
18103: LD_VAR 0 1
18107: PPUSH
18108: LD_INT 3
18110: PPUSH
18111: CALL_OW 259
18115: ST_TO_ADDR
// pom6 := GetSkill ( un , skill_scientistic ) ;
18116: LD_ADDR_VAR 0 6
18120: PUSH
18121: LD_VAR 0 1
18125: PPUSH
18126: LD_INT 4
18128: PPUSH
18129: CALL_OW 259
18133: ST_TO_ADDR
// result := [ pom3 , pom4 , pom5 , pom6 ] end ;
18134: LD_ADDR_VAR 0 2
18138: PUSH
18139: LD_VAR 0 3
18143: PUSH
18144: LD_VAR 0 4
18148: PUSH
18149: LD_VAR 0 5
18153: PUSH
18154: LD_VAR 0 6
18158: PUSH
18159: EMPTY
18160: LIST
18161: LIST
18162: LIST
18163: LIST
18164: ST_TO_ADDR
18165: LD_VAR 0 2
18169: RET
// function uprav_cloveka ( un , clas , lev ) ; var pom1 ; begin
18170: LD_INT 0
18172: PPUSH
18173: PPUSH
// prepare_human ( sex_male , clas , lev ,  ) ;
18174: LD_INT 1
18176: PPUSH
18177: LD_VAR 0 2
18181: PPUSH
18182: LD_VAR 0 3
18186: PPUSH
18187: LD_STRING 
18189: PPUSH
18190: CALL 18252 0 4
// ah = CreateHuman ;
18194: LD_ADDR_LOC 23
18198: PUSH
18199: CALL_OW 44
18203: ST_TO_ADDR
// pom1 = get_skills ( ah ) ;
18204: LD_ADDR_VAR 0 5
18208: PUSH
18209: LD_LOC 23
18213: PPUSH
18214: CALL 18055 0 1
18218: ST_TO_ADDR
// set_skills ( un , get_skills ( ah ) ) ;
18219: LD_VAR 0 1
18223: PPUSH
18224: LD_LOC 23
18228: PPUSH
18229: CALL 18055 0 1
18233: PPUSH
18234: CALL 17963 0 2
// DestroyUnit ( ah ) ;
18238: LD_LOC 23
18242: PPUSH
18243: CALL_OW 65
// end ;
18247: LD_VAR 0 4
18251: RET
// function prepare_human ( sex , clas , level , name ) ; begin
18252: LD_INT 0
18254: PPUSH
// PrepareHuman ( sex , clas , level ) ;
18255: LD_VAR 0 1
18259: PPUSH
18260: LD_VAR 0 2
18264: PPUSH
18265: LD_VAR 0 3
18269: PPUSH
18270: CALL_OW 380
// hc_name := name ;
18274: LD_ADDR_OWVAR 26
18278: PUSH
18279: LD_VAR 0 4
18283: ST_TO_ADDR
// end ;
18284: LD_VAR 0 5
18288: RET
// export function create_americke_posily ; var pom ; begin
18289: LD_INT 0
18291: PPUSH
18292: PPUSH
// uc_side = Amici ;
18293: LD_ADDR_OWVAR 20
18297: PUSH
18298: LD_EXP 4
18302: ST_TO_ADDR
// uc_nation = nation_american ;
18303: LD_ADDR_OWVAR 21
18307: PUSH
18308: LD_INT 1
18310: ST_TO_ADDR
// pom = [ ] ;
18311: LD_ADDR_VAR 0 2
18315: PUSH
18316: EMPTY
18317: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18318: LD_ADDR_VAR 0 2
18322: PUSH
18323: LD_VAR 0 2
18327: PUSH
18328: CALL 17338 0 0
18332: PPUSH
18333: LD_INT 1
18335: PPUSH
18336: LD_EXP 11
18340: PUSH
18341: LD_OWVAR 67
18345: ARRAY
18346: PPUSH
18347: LD_STRING 
18349: PPUSH
18350: CALL 17373 0 4
18354: ADD
18355: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18356: LD_ADDR_VAR 0 2
18360: PUSH
18361: LD_VAR 0 2
18365: PUSH
18366: CALL 17338 0 0
18370: PPUSH
18371: LD_INT 1
18373: PPUSH
18374: LD_EXP 11
18378: PUSH
18379: LD_OWVAR 67
18383: ARRAY
18384: PPUSH
18385: LD_STRING 
18387: PPUSH
18388: CALL 17373 0 4
18392: ADD
18393: ST_TO_ADDR
// AMERICKE_POSILY1_LIST = pom ;
18394: LD_ADDR_EXP 49
18398: PUSH
18399: LD_VAR 0 2
18403: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18404: LD_ADDR_VAR 0 2
18408: PUSH
18409: CALL 17338 0 0
18413: PPUSH
18414: LD_INT 1
18416: PPUSH
18417: LD_EXP 11
18421: PUSH
18422: LD_OWVAR 67
18426: ARRAY
18427: PPUSH
18428: LD_STRING 
18430: PPUSH
18431: CALL 17373 0 4
18435: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18436: LD_ADDR_VAR 0 2
18440: PUSH
18441: LD_VAR 0 2
18445: PUSH
18446: CALL 17338 0 0
18450: PPUSH
18451: LD_INT 3
18453: PPUSH
18454: LD_EXP 11
18458: PUSH
18459: LD_OWVAR 67
18463: ARRAY
18464: PPUSH
18465: LD_STRING 
18467: PPUSH
18468: CALL 17373 0 4
18472: ADD
18473: ST_TO_ADDR
// if pom > 1 then
18474: LD_VAR 0 2
18478: PUSH
18479: LD_INT 1
18481: GREATER
18482: IFFALSE 18522
// pom = pom ^ get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] ,  ) ;
18484: LD_ADDR_VAR 0 2
18488: PUSH
18489: LD_VAR 0 2
18493: PUSH
18494: CALL 17338 0 0
18498: PPUSH
18499: LD_INT 4
18501: PPUSH
18502: LD_EXP 11
18506: PUSH
18507: LD_OWVAR 67
18511: ARRAY
18512: PPUSH
18513: LD_STRING 
18515: PPUSH
18516: CALL 17373 0 4
18520: ADD
18521: ST_TO_ADDR
// if pom > 2 then
18522: LD_VAR 0 2
18526: PUSH
18527: LD_INT 2
18529: GREATER
18530: IFFALSE 18570
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18532: LD_ADDR_VAR 0 2
18536: PUSH
18537: LD_VAR 0 2
18541: PUSH
18542: CALL 17338 0 0
18546: PPUSH
18547: LD_INT 1
18549: PPUSH
18550: LD_EXP 11
18554: PUSH
18555: LD_OWVAR 67
18559: ARRAY
18560: PPUSH
18561: LD_STRING 
18563: PPUSH
18564: CALL 17373 0 4
18568: ADD
18569: ST_TO_ADDR
// AMERICKE_POSILY2_LIST = pom ;
18570: LD_ADDR_EXP 50
18574: PUSH
18575: LD_VAR 0 2
18579: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18580: LD_ADDR_VAR 0 2
18584: PUSH
18585: CALL 17338 0 0
18589: PPUSH
18590: LD_INT 1
18592: PPUSH
18593: LD_EXP 11
18597: PUSH
18598: LD_OWVAR 67
18602: ARRAY
18603: PPUSH
18604: LD_STRING 
18606: PPUSH
18607: CALL 17373 0 4
18611: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18612: LD_ADDR_VAR 0 2
18616: PUSH
18617: LD_VAR 0 2
18621: PUSH
18622: CALL 17338 0 0
18626: PPUSH
18627: LD_INT 1
18629: PPUSH
18630: LD_EXP 11
18634: PUSH
18635: LD_OWVAR 67
18639: ARRAY
18640: PPUSH
18641: LD_STRING 
18643: PPUSH
18644: CALL 17373 0 4
18648: ADD
18649: ST_TO_ADDR
// if pom = 1 then
18650: LD_VAR 0 2
18654: PUSH
18655: LD_INT 1
18657: EQUAL
18658: IFFALSE 18698
// pom = pom ^ get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18660: LD_ADDR_VAR 0 2
18664: PUSH
18665: LD_VAR 0 2
18669: PUSH
18670: CALL 17338 0 0
18674: PPUSH
18675: LD_INT 3
18677: PPUSH
18678: LD_EXP 11
18682: PUSH
18683: LD_OWVAR 67
18687: ARRAY
18688: PPUSH
18689: LD_STRING 
18691: PPUSH
18692: CALL 17373 0 4
18696: ADD
18697: ST_TO_ADDR
// if pom = 2 then
18698: LD_VAR 0 2
18702: PUSH
18703: LD_INT 2
18705: EQUAL
18706: IFFALSE 18812
// begin ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18708: LD_ADDR_LOC 23
18712: PUSH
18713: CALL 17338 0 0
18717: PPUSH
18718: LD_INT 3
18720: PPUSH
18721: LD_EXP 11
18725: PUSH
18726: LD_OWVAR 67
18730: ARRAY
18731: PPUSH
18732: LD_STRING 
18734: PPUSH
18735: CALL 17373 0 4
18739: ST_TO_ADDR
// vc_chassis = us_light_wheeled ;
18740: LD_ADDR_OWVAR 37
18744: PUSH
18745: LD_INT 1
18747: ST_TO_ADDR
// vc_control = control_manual ;
18748: LD_ADDR_OWVAR 38
18752: PUSH
18753: LD_INT 1
18755: ST_TO_ADDR
// vc_engine = engine_solar ;
18756: LD_ADDR_OWVAR 39
18760: PUSH
18761: LD_INT 2
18763: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
18764: LD_ADDR_OWVAR 40
18768: PUSH
18769: LD_INT 2
18771: ST_TO_ADDR
// av = CreateVehicle ;
18772: LD_ADDR_LOC 24
18776: PUSH
18777: CALL_OW 45
18781: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
18782: LD_LOC 23
18786: PPUSH
18787: LD_LOC 24
18791: PPUSH
18792: CALL_OW 52
// pom = pom ^ av ;
18796: LD_ADDR_VAR 0 2
18800: PUSH
18801: LD_VAR 0 2
18805: PUSH
18806: LD_LOC 24
18810: ADD
18811: ST_TO_ADDR
// end ; if pom = 3 then
18812: LD_VAR 0 2
18816: PUSH
18817: LD_INT 3
18819: EQUAL
18820: IFFALSE 18926
// begin ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
18822: LD_ADDR_LOC 23
18826: PUSH
18827: CALL 17338 0 0
18831: PPUSH
18832: LD_INT 3
18834: PPUSH
18835: LD_EXP 11
18839: PUSH
18840: LD_OWVAR 67
18844: ARRAY
18845: PPUSH
18846: LD_STRING 
18848: PPUSH
18849: CALL 17373 0 4
18853: ST_TO_ADDR
// vc_chassis = us_medium_wheeled ;
18854: LD_ADDR_OWVAR 37
18858: PUSH
18859: LD_INT 2
18861: ST_TO_ADDR
// vc_control = control_manual ;
18862: LD_ADDR_OWVAR 38
18866: PUSH
18867: LD_INT 1
18869: ST_TO_ADDR
// vc_engine = engine_solar ;
18870: LD_ADDR_OWVAR 39
18874: PUSH
18875: LD_INT 2
18877: ST_TO_ADDR
// vc_weapon = us_gatling_gun ;
18878: LD_ADDR_OWVAR 40
18882: PUSH
18883: LD_INT 4
18885: ST_TO_ADDR
// av = CreateVehicle ;
18886: LD_ADDR_LOC 24
18890: PUSH
18891: CALL_OW 45
18895: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
18896: LD_LOC 23
18900: PPUSH
18901: LD_LOC 24
18905: PPUSH
18906: CALL_OW 52
// pom = pom ^ av ;
18910: LD_ADDR_VAR 0 2
18914: PUSH
18915: LD_VAR 0 2
18919: PUSH
18920: LD_LOC 24
18924: ADD
18925: ST_TO_ADDR
// end ; AMERICKE_POSILY3_LIST = pom ;
18926: LD_ADDR_EXP 51
18930: PUSH
18931: LD_VAR 0 2
18935: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18936: LD_ADDR_VAR 0 2
18940: PUSH
18941: CALL 17338 0 0
18945: PPUSH
18946: LD_INT 1
18948: PPUSH
18949: LD_EXP 11
18953: PUSH
18954: LD_OWVAR 67
18958: ARRAY
18959: PPUSH
18960: LD_STRING 
18962: PPUSH
18963: CALL 17373 0 4
18967: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
18968: LD_ADDR_VAR 0 2
18972: PUSH
18973: LD_VAR 0 2
18977: PUSH
18978: CALL 17338 0 0
18982: PPUSH
18983: LD_INT 1
18985: PPUSH
18986: LD_EXP 11
18990: PUSH
18991: LD_OWVAR 67
18995: ARRAY
18996: PPUSH
18997: LD_STRING 
18999: PPUSH
19000: CALL 17373 0 4
19004: ADD
19005: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 1 ,  ) ;
19006: LD_ADDR_VAR 0 2
19010: PUSH
19011: LD_VAR 0 2
19015: PUSH
19016: CALL 17338 0 0
19020: PPUSH
19021: LD_INT 1
19023: PPUSH
19024: LD_EXP 11
19028: PUSH
19029: LD_OWVAR 67
19033: ARRAY
19034: PUSH
19035: LD_INT 1
19037: MINUS
19038: PPUSH
19039: LD_STRING 
19041: PPUSH
19042: CALL 17373 0 4
19046: ADD
19047: ST_TO_ADDR
// AMERICKE_POSILY4_LIST = pom ;
19048: LD_ADDR_EXP 52
19052: PUSH
19053: LD_VAR 0 2
19057: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , levely_amici [ difficulty ] ,  ) ;
19058: LD_ADDR_VAR 0 2
19062: PUSH
19063: CALL 17338 0 0
19067: PPUSH
19068: LD_INT 1
19070: PPUSH
19071: LD_EXP 11
19075: PUSH
19076: LD_OWVAR 67
19080: ARRAY
19081: PPUSH
19082: LD_STRING 
19084: PPUSH
19085: CALL 17373 0 4
19089: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 1 ,  ) ;
19090: LD_ADDR_VAR 0 2
19094: PUSH
19095: LD_VAR 0 2
19099: PUSH
19100: CALL 17338 0 0
19104: PPUSH
19105: LD_INT 1
19107: PPUSH
19108: LD_EXP 11
19112: PUSH
19113: LD_OWVAR 67
19117: ARRAY
19118: PUSH
19119: LD_INT 1
19121: MINUS
19122: PPUSH
19123: LD_STRING 
19125: PPUSH
19126: CALL 17373 0 4
19130: ADD
19131: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , levely_amici [ difficulty ] - 1 ,  ) ;
19132: LD_ADDR_VAR 0 2
19136: PUSH
19137: LD_VAR 0 2
19141: PUSH
19142: CALL 17338 0 0
19146: PPUSH
19147: LD_INT 1
19149: PPUSH
19150: LD_EXP 11
19154: PUSH
19155: LD_OWVAR 67
19159: ARRAY
19160: PUSH
19161: LD_INT 1
19163: MINUS
19164: PPUSH
19165: LD_STRING 
19167: PPUSH
19168: CALL 17373 0 4
19172: ADD
19173: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_scientistic , levely_amici [ difficulty ] - 1 ,  ) ;
19174: LD_ADDR_VAR 0 2
19178: PUSH
19179: LD_VAR 0 2
19183: PUSH
19184: CALL 17338 0 0
19188: PPUSH
19189: LD_INT 4
19191: PPUSH
19192: LD_EXP 11
19196: PUSH
19197: LD_OWVAR 67
19201: ARRAY
19202: PUSH
19203: LD_INT 1
19205: MINUS
19206: PPUSH
19207: LD_STRING 
19209: PPUSH
19210: CALL 17373 0 4
19214: ADD
19215: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_amici [ difficulty ] ,  ) ;
19216: LD_ADDR_LOC 23
19220: PUSH
19221: CALL 17338 0 0
19225: PPUSH
19226: LD_INT 3
19228: PPUSH
19229: LD_EXP 11
19233: PUSH
19234: LD_OWVAR 67
19238: ARRAY
19239: PPUSH
19240: LD_STRING 
19242: PPUSH
19243: CALL 17373 0 4
19247: ST_TO_ADDR
// vc_chassis = us_medium_tracked ;
19248: LD_ADDR_OWVAR 37
19252: PUSH
19253: LD_INT 3
19255: ST_TO_ADDR
// vc_control = control_manual ;
19256: LD_ADDR_OWVAR 38
19260: PUSH
19261: LD_INT 1
19263: ST_TO_ADDR
// vc_engine = engine_combustion ;
19264: LD_ADDR_OWVAR 39
19268: PUSH
19269: LD_INT 1
19271: ST_TO_ADDR
// vc_weapon = us_machine_gun ;
19272: LD_ADDR_OWVAR 40
19276: PUSH
19277: LD_INT 2
19279: ST_TO_ADDR
// av = CreateVehicle ;
19280: LD_ADDR_LOC 24
19284: PUSH
19285: CALL_OW 45
19289: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19290: LD_LOC 23
19294: PPUSH
19295: LD_LOC 24
19299: PPUSH
19300: CALL_OW 52
// pom = pom ^ av ;
19304: LD_ADDR_VAR 0 2
19308: PUSH
19309: LD_VAR 0 2
19313: PUSH
19314: LD_LOC 24
19318: ADD
19319: ST_TO_ADDR
// AMERICKE_POSILY11_LIST = pom ;
19320: LD_ADDR_EXP 53
19324: PUSH
19325: LD_VAR 0 2
19329: ST_TO_ADDR
// end ;
19330: LD_VAR 0 1
19334: RET
// export function create_kecajici_amik ; var pom ; begin
19335: LD_INT 0
19337: PPUSH
19338: PPUSH
// uc_side = Amici ;
19339: LD_ADDR_OWVAR 20
19343: PUSH
19344: LD_EXP 4
19348: ST_TO_ADDR
// uc_nation = nation_american ;
19349: LD_ADDR_OWVAR 21
19353: PUSH
19354: LD_INT 1
19356: ST_TO_ADDR
// pom = get_human ( sex_male , class_soldier , 4 , Mike Damme ) ;
19357: LD_ADDR_VAR 0 2
19361: PUSH
19362: LD_INT 1
19364: PPUSH
19365: LD_INT 1
19367: PPUSH
19368: LD_INT 4
19370: PPUSH
19371: LD_STRING Mike Damme
19373: PPUSH
19374: CALL 17373 0 4
19378: ST_TO_ADDR
// result := pom ;
19379: LD_ADDR_VAR 0 1
19383: PUSH
19384: LD_VAR 0 2
19388: ST_TO_ADDR
// end ;
19389: LD_VAR 0 1
19393: RET
// export function create_grishko ; var pom ; begin
19394: LD_INT 0
19396: PPUSH
19397: PPUSH
// pom = grishko ;
19398: LD_ADDR_VAR 0 2
19402: PUSH
19403: LD_EXP 33
19407: ST_TO_ADDR
// if pom = 0 then
19408: LD_VAR 0 2
19412: PUSH
19413: LD_INT 0
19415: EQUAL
19416: IFFALSE 19440
// pom = get_human ( sex_male , class_soldier , 4 , Piotr Grishko ) ;
19418: LD_ADDR_VAR 0 2
19422: PUSH
19423: LD_INT 1
19425: PPUSH
19426: LD_INT 1
19428: PPUSH
19429: LD_INT 4
19431: PPUSH
19432: LD_STRING Piotr Grishko
19434: PPUSH
19435: CALL 17373 0 4
19439: ST_TO_ADDR
// if pom > 0 then
19440: LD_VAR 0 2
19444: PUSH
19445: LD_INT 0
19447: GREATER
19448: IFFALSE 19484
// begin SetSide ( pom [ 1 ] , You2 ) ;
19450: LD_VAR 0 2
19454: PUSH
19455: LD_INT 1
19457: ARRAY
19458: PPUSH
19459: LD_EXP 2
19463: PPUSH
19464: CALL_OW 235
// result = pom [ 1 ] ;
19468: LD_ADDR_VAR 0 1
19472: PUSH
19473: LD_VAR 0 2
19477: PUSH
19478: LD_INT 1
19480: ARRAY
19481: ST_TO_ADDR
// end else
19482: GO 19491
// msg ( ERROR: Grishko se z nejakych obskurnich duvodu nevytvoril ) ;
19484: LD_STRING ERROR: Grishko se z nejakych obskurnich duvodu nevytvoril
19486: PPUSH
19487: CALL_OW 100
// end ;
19491: LD_VAR 0 1
19495: RET
// export function create_arabsky_utok ; var pom , i ; begin
19496: LD_INT 0
19498: PPUSH
19499: PPUSH
19500: PPUSH
// pom = FilterUnitsInArea ( Ar_jedn , [ [ f_side , Arabi ] , [ f_class , class_apeman_kamikaze ] ] ) ;
19501: LD_ADDR_VAR 0 2
19505: PUSH
19506: LD_INT 9
19508: PPUSH
19509: LD_INT 22
19511: PUSH
19512: LD_EXP 5
19516: PUSH
19517: EMPTY
19518: LIST
19519: LIST
19520: PUSH
19521: LD_INT 25
19523: PUSH
19524: LD_INT 17
19526: PUSH
19527: EMPTY
19528: LIST
19529: LIST
19530: PUSH
19531: EMPTY
19532: LIST
19533: LIST
19534: PPUSH
19535: CALL_OW 70
19539: ST_TO_ADDR
// ARABI_KAMIKADZE_LIST = pom ;
19540: LD_ADDR_EXP 58
19544: PUSH
19545: LD_VAR 0 2
19549: ST_TO_ADDR
// for i in pom do
19550: LD_ADDR_VAR 0 3
19554: PUSH
19555: LD_VAR 0 2
19559: PUSH
19560: FOR_IN
19561: IFFALSE 19574
// RemoveUnit ( i ) ;
19563: LD_VAR 0 3
19567: PPUSH
19568: CALL_OW 64
19572: GO 19560
19574: POP
19575: POP
// pom = [ ] ;
19576: LD_ADDR_VAR 0 2
19580: PUSH
19581: EMPTY
19582: ST_TO_ADDR
// uc_side = Arabi ;
19583: LD_ADDR_OWVAR 20
19587: PUSH
19588: LD_EXP 5
19592: ST_TO_ADDR
// uc_nation = nation_arabian ;
19593: LD_ADDR_OWVAR 21
19597: PUSH
19598: LD_INT 2
19600: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19601: LD_ADDR_LOC 23
19605: PUSH
19606: CALL 17338 0 0
19610: PPUSH
19611: LD_INT 3
19613: PPUSH
19614: LD_INT 9
19616: PPUSH
19617: LD_STRING 
19619: PPUSH
19620: CALL 17373 0 4
19624: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
19625: LD_ADDR_OWVAR 37
19629: PUSH
19630: LD_INT 14
19632: ST_TO_ADDR
// vc_weapon = ar_flame_thrower ;
19633: LD_ADDR_OWVAR 40
19637: PUSH
19638: LD_INT 26
19640: ST_TO_ADDR
// vc_control = control_manual ;
19641: LD_ADDR_OWVAR 38
19645: PUSH
19646: LD_INT 1
19648: ST_TO_ADDR
// vc_engine = engine_combustion ;
19649: LD_ADDR_OWVAR 39
19653: PUSH
19654: LD_INT 1
19656: ST_TO_ADDR
// av = CreateVehicle ;
19657: LD_ADDR_LOC 24
19661: PUSH
19662: CALL_OW 45
19666: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19667: LD_LOC 23
19671: PPUSH
19672: LD_LOC 24
19676: PPUSH
19677: CALL_OW 52
// pom = pom ^ av ;
19681: LD_ADDR_VAR 0 2
19685: PUSH
19686: LD_VAR 0 2
19690: PUSH
19691: LD_LOC 24
19695: ADD
19696: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19697: LD_ADDR_LOC 23
19701: PUSH
19702: CALL 17338 0 0
19706: PPUSH
19707: LD_INT 3
19709: PPUSH
19710: LD_INT 9
19712: PPUSH
19713: LD_STRING 
19715: PPUSH
19716: CALL 17373 0 4
19720: ST_TO_ADDR
// av = CreateVehicle ;
19721: LD_ADDR_LOC 24
19725: PUSH
19726: CALL_OW 45
19730: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19731: LD_LOC 23
19735: PPUSH
19736: LD_LOC 24
19740: PPUSH
19741: CALL_OW 52
// pom = pom ^ av ;
19745: LD_ADDR_VAR 0 2
19749: PUSH
19750: LD_VAR 0 2
19754: PUSH
19755: LD_LOC 24
19759: ADD
19760: ST_TO_ADDR
// ARABI_FLAME_LIST = pom ;
19761: LD_ADDR_EXP 60
19765: PUSH
19766: LD_VAR 0 2
19770: ST_TO_ADDR
// pom = [ ] ;
19771: LD_ADDR_VAR 0 2
19775: PUSH
19776: EMPTY
19777: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19778: LD_ADDR_LOC 23
19782: PUSH
19783: CALL 17338 0 0
19787: PPUSH
19788: LD_INT 3
19790: PPUSH
19791: LD_INT 9
19793: PPUSH
19794: LD_STRING 
19796: PPUSH
19797: CALL 17373 0 4
19801: ST_TO_ADDR
// vc_weapon = ar_gun ;
19802: LD_ADDR_OWVAR 40
19806: PUSH
19807: LD_INT 27
19809: ST_TO_ADDR
// av = CreateVehicle ;
19810: LD_ADDR_LOC 24
19814: PUSH
19815: CALL_OW 45
19819: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19820: LD_LOC 23
19824: PPUSH
19825: LD_LOC 24
19829: PPUSH
19830: CALL_OW 52
// pom = av ;
19834: LD_ADDR_VAR 0 2
19838: PUSH
19839: LD_LOC 24
19843: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19844: LD_ADDR_LOC 23
19848: PUSH
19849: CALL 17338 0 0
19853: PPUSH
19854: LD_INT 3
19856: PPUSH
19857: LD_INT 9
19859: PPUSH
19860: LD_STRING 
19862: PPUSH
19863: CALL 17373 0 4
19867: ST_TO_ADDR
// av = CreateVehicle ;
19868: LD_ADDR_LOC 24
19872: PUSH
19873: CALL_OW 45
19877: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19878: LD_LOC 23
19882: PPUSH
19883: LD_LOC 24
19887: PPUSH
19888: CALL_OW 52
// pom = pom ^ av ;
19892: LD_ADDR_VAR 0 2
19896: PUSH
19897: LD_VAR 0 2
19901: PUSH
19902: LD_LOC 24
19906: ADD
19907: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19908: LD_ADDR_LOC 23
19912: PUSH
19913: CALL 17338 0 0
19917: PPUSH
19918: LD_INT 3
19920: PPUSH
19921: LD_INT 9
19923: PPUSH
19924: LD_STRING 
19926: PPUSH
19927: CALL 17373 0 4
19931: ST_TO_ADDR
// vc_weapon = ar_gatling_gun ;
19932: LD_ADDR_OWVAR 40
19936: PUSH
19937: LD_INT 25
19939: ST_TO_ADDR
// av = CreateVehicle ;
19940: LD_ADDR_LOC 24
19944: PUSH
19945: CALL_OW 45
19949: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
19950: LD_LOC 23
19954: PPUSH
19955: LD_LOC 24
19959: PPUSH
19960: CALL_OW 52
// pom = pom ^ av ;
19964: LD_ADDR_VAR 0 2
19968: PUSH
19969: LD_VAR 0 2
19973: PUSH
19974: LD_LOC 24
19978: ADD
19979: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
19980: LD_ADDR_LOC 23
19984: PUSH
19985: CALL 17338 0 0
19989: PPUSH
19990: LD_INT 3
19992: PPUSH
19993: LD_INT 9
19995: PPUSH
19996: LD_STRING 
19998: PPUSH
19999: CALL 17373 0 4
20003: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
20004: LD_ADDR_OWVAR 40
20008: PUSH
20009: LD_INT 28
20011: ST_TO_ADDR
// av = CreateVehicle ;
20012: LD_ADDR_LOC 24
20016: PUSH
20017: CALL_OW 45
20021: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20022: LD_LOC 23
20026: PPUSH
20027: LD_LOC 24
20031: PPUSH
20032: CALL_OW 52
// pom = pom ^ av ;
20036: LD_ADDR_VAR 0 2
20040: PUSH
20041: LD_VAR 0 2
20045: PUSH
20046: LD_LOC 24
20050: ADD
20051: ST_TO_ADDR
// ARABI_PRVNI_VLNA = pom ;
20052: LD_ADDR_EXP 59
20056: PUSH
20057: LD_VAR 0 2
20061: ST_TO_ADDR
// pom = [ ] ;
20062: LD_ADDR_VAR 0 2
20066: PUSH
20067: EMPTY
20068: ST_TO_ADDR
// vc_weapon = ar_selfpropelled_bomb ;
20069: LD_ADDR_OWVAR 40
20073: PUSH
20074: LD_INT 29
20076: ST_TO_ADDR
// vc_control = control_apeman ;
20077: LD_ADDR_OWVAR 38
20081: PUSH
20082: LD_INT 5
20084: ST_TO_ADDR
// ah = CreateVehicle ;
20085: LD_ADDR_LOC 23
20089: PUSH
20090: CALL_OW 45
20094: ST_TO_ADDR
// pom = ah ;
20095: LD_ADDR_VAR 0 2
20099: PUSH
20100: LD_LOC 23
20104: ST_TO_ADDR
// pom = pom ^ CreateVehicle ;
20105: LD_ADDR_VAR 0 2
20109: PUSH
20110: LD_VAR 0 2
20114: PUSH
20115: CALL_OW 45
20119: ADD
20120: ST_TO_ADDR
// ARABI_SELF_AUTA = pom ;
20121: LD_ADDR_EXP 61
20125: PUSH
20126: LD_VAR 0 2
20130: ST_TO_ADDR
// pom = [ ] ;
20131: LD_ADDR_VAR 0 2
20135: PUSH
20136: EMPTY
20137: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 9 ,  ) ;
20138: LD_ADDR_VAR 0 2
20142: PUSH
20143: CALL 17338 0 0
20147: PPUSH
20148: LD_INT 1
20150: PPUSH
20151: LD_INT 9
20153: PPUSH
20154: LD_STRING 
20156: PPUSH
20157: CALL 17373 0 4
20161: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
20162: LD_ADDR_VAR 0 2
20166: PUSH
20167: LD_VAR 0 2
20171: PUSH
20172: CALL 17338 0 0
20176: PPUSH
20177: LD_INT 1
20179: PPUSH
20180: LD_INT 9
20182: PPUSH
20183: LD_STRING 
20185: PPUSH
20186: CALL 17373 0 4
20190: ADD
20191: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
20192: LD_ADDR_VAR 0 2
20196: PUSH
20197: LD_VAR 0 2
20201: PUSH
20202: CALL 17338 0 0
20206: PPUSH
20207: LD_INT 1
20209: PPUSH
20210: LD_INT 9
20212: PPUSH
20213: LD_STRING 
20215: PPUSH
20216: CALL 17373 0 4
20220: ADD
20221: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
20222: LD_ADDR_VAR 0 2
20226: PUSH
20227: LD_VAR 0 2
20231: PUSH
20232: CALL 17338 0 0
20236: PPUSH
20237: LD_INT 1
20239: PPUSH
20240: LD_INT 9
20242: PPUSH
20243: LD_STRING 
20245: PPUSH
20246: CALL 17373 0 4
20250: ADD
20251: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
20252: LD_ADDR_VAR 0 2
20256: PUSH
20257: LD_VAR 0 2
20261: PUSH
20262: CALL 17338 0 0
20266: PPUSH
20267: LD_INT 8
20269: PPUSH
20270: LD_INT 9
20272: PPUSH
20273: LD_STRING 
20275: PPUSH
20276: CALL 17373 0 4
20280: ADD
20281: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
20282: LD_ADDR_VAR 0 2
20286: PUSH
20287: LD_VAR 0 2
20291: PUSH
20292: CALL 17338 0 0
20296: PPUSH
20297: LD_INT 8
20299: PPUSH
20300: LD_INT 9
20302: PPUSH
20303: LD_STRING 
20305: PPUSH
20306: CALL 17373 0 4
20310: ADD
20311: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 9 ,  ) ;
20312: LD_ADDR_VAR 0 2
20316: PUSH
20317: LD_VAR 0 2
20321: PUSH
20322: CALL 17338 0 0
20326: PPUSH
20327: LD_INT 1
20329: PPUSH
20330: LD_INT 9
20332: PPUSH
20333: LD_STRING 
20335: PPUSH
20336: CALL 17373 0 4
20340: ADD
20341: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
20342: LD_ADDR_VAR 0 2
20346: PUSH
20347: LD_VAR 0 2
20351: PUSH
20352: CALL 17338 0 0
20356: PPUSH
20357: LD_INT 8
20359: PPUSH
20360: LD_INT 9
20362: PPUSH
20363: LD_STRING 
20365: PPUSH
20366: CALL 17373 0 4
20370: ADD
20371: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 9 ,  ) ;
20372: LD_ADDR_VAR 0 2
20376: PUSH
20377: LD_VAR 0 2
20381: PUSH
20382: CALL 17338 0 0
20386: PPUSH
20387: LD_INT 8
20389: PPUSH
20390: LD_INT 9
20392: PPUSH
20393: LD_STRING 
20395: PPUSH
20396: CALL 17373 0 4
20400: ADD
20401: ST_TO_ADDR
// ARABI_VOJACI = pom ;
20402: LD_ADDR_EXP 62
20406: PUSH
20407: LD_VAR 0 2
20411: ST_TO_ADDR
// vc_weapon = ar_rocket_launcher ;
20412: LD_ADDR_OWVAR 40
20416: PUSH
20417: LD_INT 28
20419: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
20420: LD_ADDR_OWVAR 37
20424: PUSH
20425: LD_INT 14
20427: ST_TO_ADDR
// vc_control = control_manual ;
20428: LD_ADDR_OWVAR 38
20432: PUSH
20433: LD_INT 1
20435: ST_TO_ADDR
// vc_engine = engine_siberite ;
20436: LD_ADDR_OWVAR 39
20440: PUSH
20441: LD_INT 3
20443: ST_TO_ADDR
// av = CreateVehicle ;
20444: LD_ADDR_LOC 24
20448: PUSH
20449: CALL_OW 45
20453: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 9 ,  ) ;
20454: LD_ADDR_LOC 23
20458: PUSH
20459: CALL 17338 0 0
20463: PPUSH
20464: LD_INT 3
20466: PPUSH
20467: LD_INT 9
20469: PPUSH
20470: LD_STRING 
20472: PPUSH
20473: CALL 17373 0 4
20477: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20478: LD_LOC 23
20482: PPUSH
20483: LD_LOC 24
20487: PPUSH
20488: CALL_OW 52
// pom = av ;
20492: LD_ADDR_VAR 0 2
20496: PUSH
20497: LD_LOC 24
20501: ST_TO_ADDR
// av = CreateVehicle ;
20502: LD_ADDR_LOC 24
20506: PUSH
20507: CALL_OW 45
20511: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 8 ,  ) ;
20512: LD_ADDR_LOC 23
20516: PUSH
20517: CALL 17338 0 0
20521: PPUSH
20522: LD_INT 3
20524: PPUSH
20525: LD_INT 8
20527: PPUSH
20528: LD_STRING 
20530: PPUSH
20531: CALL 17373 0 4
20535: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20536: LD_LOC 23
20540: PPUSH
20541: LD_LOC 24
20545: PPUSH
20546: CALL_OW 52
// pom = pom ^ av ;
20550: LD_ADDR_VAR 0 2
20554: PUSH
20555: LD_VAR 0 2
20559: PUSH
20560: LD_LOC 24
20564: ADD
20565: ST_TO_ADDR
// av = CreateVehicle ;
20566: LD_ADDR_LOC 24
20570: PUSH
20571: CALL_OW 45
20575: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 8 ,  ) ;
20576: LD_ADDR_LOC 23
20580: PUSH
20581: CALL 17338 0 0
20585: PPUSH
20586: LD_INT 3
20588: PPUSH
20589: LD_INT 8
20591: PPUSH
20592: LD_STRING 
20594: PPUSH
20595: CALL 17373 0 4
20599: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20600: LD_LOC 23
20604: PPUSH
20605: LD_LOC 24
20609: PPUSH
20610: CALL_OW 52
// pom = pom ^ av ;
20614: LD_ADDR_VAR 0 2
20618: PUSH
20619: LD_VAR 0 2
20623: PUSH
20624: LD_LOC 24
20628: ADD
20629: ST_TO_ADDR
// ARABI_doraz = pom ;
20630: LD_ADDR_EXP 63
20634: PUSH
20635: LD_VAR 0 2
20639: ST_TO_ADDR
// end ;
20640: LD_VAR 0 1
20644: RET
// export function create_ruske_posily_na_omicron ; var pom ; begin
20645: LD_INT 0
20647: PPUSH
20648: PPUSH
// pom = [ ] ;
20649: LD_ADDR_VAR 0 2
20653: PUSH
20654: EMPTY
20655: ST_TO_ADDR
// uc_side = You2 ;
20656: LD_ADDR_OWVAR 20
20660: PUSH
20661: LD_EXP 2
20665: ST_TO_ADDR
// uc_nation = nation_russian ;
20666: LD_ADDR_OWVAR 21
20670: PUSH
20671: LD_INT 3
20673: ST_TO_ADDR
// vc_chassis = ru_heavy_wheeled ;
20674: LD_ADDR_OWVAR 37
20678: PUSH
20679: LD_INT 23
20681: ST_TO_ADDR
// vc_weapon = ru_gatling_gun ;
20682: LD_ADDR_OWVAR 40
20686: PUSH
20687: LD_INT 43
20689: ST_TO_ADDR
// vc_control = control_manual ;
20690: LD_ADDR_OWVAR 38
20694: PUSH
20695: LD_INT 1
20697: ST_TO_ADDR
// vc_engine = engine_combustion ;
20698: LD_ADDR_OWVAR 39
20702: PUSH
20703: LD_INT 1
20705: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20706: LD_ADDR_LOC 23
20710: PUSH
20711: CALL 17338 0 0
20715: PPUSH
20716: LD_INT 3
20718: PPUSH
20719: LD_EXP 18
20723: PUSH
20724: LD_OWVAR 67
20728: ARRAY
20729: PPUSH
20730: LD_STRING 
20732: PPUSH
20733: CALL 17373 0 4
20737: ST_TO_ADDR
// av = CreateVehicle ;
20738: LD_ADDR_LOC 24
20742: PUSH
20743: CALL_OW 45
20747: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20748: LD_LOC 23
20752: PPUSH
20753: LD_LOC 24
20757: PPUSH
20758: CALL_OW 52
// pom = pom ^ av ;
20762: LD_ADDR_VAR 0 2
20766: PUSH
20767: LD_VAR 0 2
20771: PUSH
20772: LD_LOC 24
20776: ADD
20777: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] + 1 ,  ) ;
20778: LD_ADDR_LOC 23
20782: PUSH
20783: CALL 17338 0 0
20787: PPUSH
20788: LD_INT 3
20790: PPUSH
20791: LD_EXP 18
20795: PUSH
20796: LD_OWVAR 67
20800: ARRAY
20801: PUSH
20802: LD_INT 1
20804: PLUS
20805: PPUSH
20806: LD_STRING 
20808: PPUSH
20809: CALL 17373 0 4
20813: ST_TO_ADDR
// av = CreateVehicle ;
20814: LD_ADDR_LOC 24
20818: PUSH
20819: CALL_OW 45
20823: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20824: LD_LOC 23
20828: PPUSH
20829: LD_LOC 24
20833: PPUSH
20834: CALL_OW 52
// pom = pom ^ av ;
20838: LD_ADDR_VAR 0 2
20842: PUSH
20843: LD_VAR 0 2
20847: PUSH
20848: LD_LOC 24
20852: ADD
20853: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
20854: LD_ADDR_LOC 23
20858: PUSH
20859: CALL 17338 0 0
20863: PPUSH
20864: LD_INT 3
20866: PPUSH
20867: LD_EXP 18
20871: PUSH
20872: LD_OWVAR 67
20876: ARRAY
20877: PPUSH
20878: LD_STRING 
20880: PPUSH
20881: CALL 17373 0 4
20885: ST_TO_ADDR
// vc_weapon = ru_gun ;
20886: LD_ADDR_OWVAR 40
20890: PUSH
20891: LD_INT 44
20893: ST_TO_ADDR
// av = CreateVehicle ;
20894: LD_ADDR_LOC 24
20898: PUSH
20899: CALL_OW 45
20903: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20904: LD_LOC 23
20908: PPUSH
20909: LD_LOC 24
20913: PPUSH
20914: CALL_OW 52
// pom = pom ^ av ;
20918: LD_ADDR_VAR 0 2
20922: PUSH
20923: LD_VAR 0 2
20927: PUSH
20928: LD_LOC 24
20932: ADD
20933: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] - 1 ,  ) ;
20934: LD_ADDR_LOC 23
20938: PUSH
20939: CALL 17338 0 0
20943: PPUSH
20944: LD_INT 3
20946: PPUSH
20947: LD_EXP 18
20951: PUSH
20952: LD_OWVAR 67
20956: ARRAY
20957: PUSH
20958: LD_INT 1
20960: MINUS
20961: PPUSH
20962: LD_STRING 
20964: PPUSH
20965: CALL 17373 0 4
20969: ST_TO_ADDR
// vc_chassis = ru_medium_tracked ;
20970: LD_ADDR_OWVAR 37
20974: PUSH
20975: LD_INT 22
20977: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
20978: LD_ADDR_OWVAR 40
20982: PUSH
20983: LD_INT 42
20985: ST_TO_ADDR
// av = CreateVehicle ;
20986: LD_ADDR_LOC 24
20990: PUSH
20991: CALL_OW 45
20995: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
20996: LD_LOC 23
21000: PPUSH
21001: LD_LOC 24
21005: PPUSH
21006: CALL_OW 52
// pom = pom ^ av ;
21010: LD_ADDR_VAR 0 2
21014: PUSH
21015: LD_VAR 0 2
21019: PUSH
21020: LD_LOC 24
21024: ADD
21025: ST_TO_ADDR
// RUSKE_POSILY_NA_OMICRON_LIST = pom ;
21026: LD_ADDR_EXP 54
21030: PUSH
21031: LD_VAR 0 2
21035: ST_TO_ADDR
// pom = [ ] ;
21036: LD_ADDR_VAR 0 2
21040: PUSH
21041: EMPTY
21042: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
21043: LD_ADDR_LOC 23
21047: PUSH
21048: CALL 17338 0 0
21052: PPUSH
21053: LD_INT 3
21055: PPUSH
21056: LD_EXP 18
21060: PUSH
21061: LD_OWVAR 67
21065: ARRAY
21066: PPUSH
21067: LD_STRING 
21069: PPUSH
21070: CALL 17373 0 4
21074: ST_TO_ADDR
// pom = pom ^ ah ;
21075: LD_ADDR_VAR 0 2
21079: PUSH
21080: LD_VAR 0 2
21084: PUSH
21085: LD_LOC 23
21089: ADD
21090: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
21091: LD_ADDR_LOC 23
21095: PUSH
21096: CALL 17338 0 0
21100: PPUSH
21101: LD_INT 3
21103: PPUSH
21104: LD_EXP 18
21108: PUSH
21109: LD_OWVAR 67
21113: ARRAY
21114: PPUSH
21115: LD_STRING 
21117: PPUSH
21118: CALL 17373 0 4
21122: ST_TO_ADDR
// pom = pom ^ ah ;
21123: LD_ADDR_VAR 0 2
21127: PUSH
21128: LD_VAR 0 2
21132: PUSH
21133: LD_LOC 23
21137: ADD
21138: ST_TO_ADDR
// RUSKE_POSILY_RIDICI_LIST = pom ;
21139: LD_ADDR_EXP 55
21143: PUSH
21144: LD_VAR 0 2
21148: ST_TO_ADDR
// end ;
21149: LD_VAR 0 1
21153: RET
// export function create_dalsi_ridici ( auta ) ; var i , pom ; var poc ; begin
21154: LD_INT 0
21156: PPUSH
21157: PPUSH
21158: PPUSH
21159: PPUSH
// uc_side = You2 ;
21160: LD_ADDR_OWVAR 20
21164: PUSH
21165: LD_EXP 2
21169: ST_TO_ADDR
// uc_nation = nation_russian ;
21170: LD_ADDR_OWVAR 21
21174: PUSH
21175: LD_INT 3
21177: ST_TO_ADDR
// pom = [ ] ;
21178: LD_ADDR_VAR 0 4
21182: PUSH
21183: EMPTY
21184: ST_TO_ADDR
// poc = 0 ;
21185: LD_ADDR_VAR 0 5
21189: PUSH
21190: LD_INT 0
21192: ST_TO_ADDR
// for i in auta do
21193: LD_ADDR_VAR 0 3
21197: PUSH
21198: LD_VAR 0 1
21202: PUSH
21203: FOR_IN
21204: IFFALSE 21270
// begin poc = poc + 1 ;
21206: LD_ADDR_VAR 0 5
21210: PUSH
21211: LD_VAR 0 5
21215: PUSH
21216: LD_INT 1
21218: PLUS
21219: ST_TO_ADDR
// if poc < 3 then
21220: LD_VAR 0 5
21224: PUSH
21225: LD_INT 3
21227: LESS
21228: IFFALSE 21268
// pom = pom ^ get_human ( get_sex , class_mechanic , levely_ruske_posily [ difficulty ] ,  ) ;
21230: LD_ADDR_VAR 0 4
21234: PUSH
21235: LD_VAR 0 4
21239: PUSH
21240: CALL 17338 0 0
21244: PPUSH
21245: LD_INT 3
21247: PPUSH
21248: LD_EXP 18
21252: PUSH
21253: LD_OWVAR 67
21257: ARRAY
21258: PPUSH
21259: LD_STRING 
21261: PPUSH
21262: CALL 17373 0 4
21266: ADD
21267: ST_TO_ADDR
// end ;
21268: GO 21203
21270: POP
21271: POP
// result := pom ;
21272: LD_ADDR_VAR 0 2
21276: PUSH
21277: LD_VAR 0 4
21281: ST_TO_ADDR
// end ;
21282: LD_VAR 0 2
21286: RET
// export function create_am_jednotky ; begin
21287: LD_INT 0
21289: PPUSH
// SetSide ( kur , You2 ) ;
21290: LD_EXP 25
21294: PPUSH
21295: LD_EXP 2
21299: PPUSH
21300: CALL_OW 235
// PlaceUnitXY ( kur , 147 , 81 , false ) ;
21304: LD_EXP 25
21308: PPUSH
21309: LD_INT 147
21311: PPUSH
21312: LD_INT 81
21314: PPUSH
21315: LD_INT 0
21317: PPUSH
21318: CALL_OW 48
// if BELKOV_SAVED then
21322: LD_EXP 22
21326: IFFALSE 21372
// begin SetSide ( bel , You2 ) ;
21328: LD_EXP 30
21332: PPUSH
21333: LD_EXP 2
21337: PPUSH
21338: CALL_OW 235
// SetClass ( bel , class_soldier ) ;
21342: LD_EXP 30
21346: PPUSH
21347: LD_INT 1
21349: PPUSH
21350: CALL_OW 336
// PlaceUnitXY ( bel , 141 , 80 , false ) ;
21354: LD_EXP 30
21358: PPUSH
21359: LD_INT 141
21361: PPUSH
21362: LD_INT 80
21364: PPUSH
21365: LD_INT 0
21367: PPUSH
21368: CALL_OW 48
// end ; if kov <> 0 then
21372: LD_EXP 28
21376: PUSH
21377: LD_INT 0
21379: NONEQUAL
21380: IFFALSE 21426
// begin SetSide ( kov , You ) ;
21382: LD_EXP 28
21386: PPUSH
21387: LD_EXP 1
21391: PPUSH
21392: CALL_OW 235
// SetClass ( kov , class_soldier ) ;
21396: LD_EXP 28
21400: PPUSH
21401: LD_INT 1
21403: PPUSH
21404: CALL_OW 336
// PlaceUnitXY ( kov , 142 , 80 , false ) ;
21408: LD_EXP 28
21412: PPUSH
21413: LD_INT 142
21415: PPUSH
21416: LD_INT 80
21418: PPUSH
21419: LD_INT 0
21421: PPUSH
21422: CALL_OW 48
// end ; SetClass ( bur , class_mechanic ) ;
21426: LD_EXP 27
21430: PPUSH
21431: LD_INT 3
21433: PPUSH
21434: CALL_OW 336
// SetSide ( bur , You ) ;
21438: LD_EXP 27
21442: PPUSH
21443: LD_EXP 1
21447: PPUSH
21448: CALL_OW 235
// PlaceUnitXY ( bur , 144 , 80 , false ) ;
21452: LD_EXP 27
21456: PPUSH
21457: LD_INT 144
21459: PPUSH
21460: LD_INT 80
21462: PPUSH
21463: LD_INT 0
21465: PPUSH
21466: CALL_OW 48
// if gny <> 0 then
21470: LD_EXP 29
21474: PUSH
21475: LD_INT 0
21477: NONEQUAL
21478: IFFALSE 21536
// begin SetClass ( gny , class_soldier ) ;
21480: LD_EXP 29
21484: PPUSH
21485: LD_INT 1
21487: PPUSH
21488: CALL_OW 336
// SetSide ( gny , You ) ;
21492: LD_EXP 29
21496: PPUSH
21497: LD_EXP 1
21501: PPUSH
21502: CALL_OW 235
// SetClass ( gny , class_mechanic ) ;
21506: LD_EXP 29
21510: PPUSH
21511: LD_INT 3
21513: PPUSH
21514: CALL_OW 336
// PlaceUnitXY ( gny , 142 , 79 , false ) ;
21518: LD_EXP 29
21522: PPUSH
21523: LD_INT 142
21525: PPUSH
21526: LD_INT 79
21528: PPUSH
21529: LD_INT 0
21531: PPUSH
21532: CALL_OW 48
// end ; SetSide ( pop , You2 ) ;
21536: LD_EXP 26
21540: PPUSH
21541: LD_EXP 2
21545: PPUSH
21546: CALL_OW 235
// PlaceUnitXY ( pop , 136 , 79 , false ) ;
21550: LD_EXP 26
21554: PPUSH
21555: LD_INT 136
21557: PPUSH
21558: LD_INT 79
21560: PPUSH
21561: LD_INT 0
21563: PPUSH
21564: CALL_OW 48
// end ;
21568: LD_VAR 0 1
21572: RET
// export function nacti_osobu ( ident ) ; begin
21573: LD_INT 0
21575: PPUSH
// if CheckCharacterSet ( ident ) then
21576: LD_VAR 0 1
21580: PPUSH
21581: CALL_OW 29
21585: IFFALSE 21604
// result := CreateCharacter ( ident ) else
21587: LD_ADDR_VAR 0 2
21591: PUSH
21592: LD_VAR 0 1
21596: PPUSH
21597: CALL_OW 34
21601: ST_TO_ADDR
21602: GO 21612
// result := 0 ;
21604: LD_ADDR_VAR 0 2
21608: PUSH
21609: LD_INT 0
21611: ST_TO_ADDR
// end ;
21612: LD_VAR 0 2
21616: RET
// export function create_arabi_komanda ; var pom ; begin
21617: LD_INT 0
21619: PPUSH
21620: PPUSH
// uc_side = Arabi ;
21621: LD_ADDR_OWVAR 20
21625: PUSH
21626: LD_EXP 5
21630: ST_TO_ADDR
// uc_nation = nation_arabian ;
21631: LD_ADDR_OWVAR 21
21635: PUSH
21636: LD_INT 2
21638: ST_TO_ADDR
// pom = [ ] ;
21639: LD_ADDR_VAR 0 2
21643: PUSH
21644: EMPTY
21645: ST_TO_ADDR
// pom = get_human ( sex_female , class_soldier , 8 ,  ) ;
21646: LD_ADDR_VAR 0 2
21650: PUSH
21651: LD_INT 2
21653: PPUSH
21654: LD_INT 1
21656: PPUSH
21657: LD_INT 8
21659: PPUSH
21660: LD_STRING 
21662: PPUSH
21663: CALL 17373 0 4
21667: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21668: LD_ADDR_VAR 0 2
21672: PUSH
21673: LD_VAR 0 2
21677: PUSH
21678: CALL 17338 0 0
21682: PPUSH
21683: LD_INT 1
21685: PPUSH
21686: LD_INT 6
21688: PPUSH
21689: LD_STRING 
21691: PPUSH
21692: CALL 17373 0 4
21696: ADD
21697: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21698: LD_ADDR_VAR 0 2
21702: PUSH
21703: LD_VAR 0 2
21707: PUSH
21708: CALL 17338 0 0
21712: PPUSH
21713: LD_INT 1
21715: PPUSH
21716: LD_INT 6
21718: PPUSH
21719: LD_STRING 
21721: PPUSH
21722: CALL 17373 0 4
21726: ADD
21727: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
21728: LD_ADDR_VAR 0 2
21732: PUSH
21733: LD_VAR 0 2
21737: PUSH
21738: CALL 17338 0 0
21742: PPUSH
21743: LD_INT 1
21745: PPUSH
21746: LD_INT 6
21748: PPUSH
21749: LD_STRING 
21751: PPUSH
21752: CALL 17373 0 4
21756: ADD
21757: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 6 ,  ) ;
21758: LD_ADDR_LOC 23
21762: PUSH
21763: CALL 17338 0 0
21767: PPUSH
21768: LD_INT 3
21770: PPUSH
21771: LD_INT 6
21773: PPUSH
21774: LD_STRING 
21776: PPUSH
21777: CALL 17373 0 4
21781: ST_TO_ADDR
// vc_weapon = ar_gatling_gun ;
21782: LD_ADDR_OWVAR 40
21786: PUSH
21787: LD_INT 25
21789: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
21790: LD_ADDR_OWVAR 37
21794: PUSH
21795: LD_INT 13
21797: ST_TO_ADDR
// vc_control = control_manual ;
21798: LD_ADDR_OWVAR 38
21802: PUSH
21803: LD_INT 1
21805: ST_TO_ADDR
// vc_engine = engine_solar ;
21806: LD_ADDR_OWVAR 39
21810: PUSH
21811: LD_INT 2
21813: ST_TO_ADDR
// av = CreateVehicle ;
21814: LD_ADDR_LOC 24
21818: PUSH
21819: CALL_OW 45
21823: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
21824: LD_LOC 23
21828: PPUSH
21829: LD_LOC 24
21833: PPUSH
21834: CALL_OW 52
// pom = pom ^ av ;
21838: LD_ADDR_VAR 0 2
21842: PUSH
21843: LD_VAR 0 2
21847: PUSH
21848: LD_LOC 24
21852: ADD
21853: ST_TO_ADDR
// vc_weapon = ar_gun ;
21854: LD_ADDR_OWVAR 40
21858: PUSH
21859: LD_INT 27
21861: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
21862: LD_ADDR_OWVAR 37
21866: PUSH
21867: LD_INT 14
21869: ST_TO_ADDR
// vc_control = control_apeman ;
21870: LD_ADDR_OWVAR 38
21874: PUSH
21875: LD_INT 5
21877: ST_TO_ADDR
// vc_engine = engine_combustion ;
21878: LD_ADDR_OWVAR 39
21882: PUSH
21883: LD_INT 1
21885: ST_TO_ADDR
// av = CreateVehicle ;
21886: LD_ADDR_LOC 24
21890: PUSH
21891: CALL_OW 45
21895: ST_TO_ADDR
// pom = pom ^ av ;
21896: LD_ADDR_VAR 0 2
21900: PUSH
21901: LD_VAR 0 2
21905: PUSH
21906: LD_LOC 24
21910: ADD
21911: ST_TO_ADDR
// vc_weapon = ar_gun ;
21912: LD_ADDR_OWVAR 40
21916: PUSH
21917: LD_INT 27
21919: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
21920: LD_ADDR_OWVAR 37
21924: PUSH
21925: LD_INT 14
21927: ST_TO_ADDR
// vc_control = control_apeman ;
21928: LD_ADDR_OWVAR 38
21932: PUSH
21933: LD_INT 5
21935: ST_TO_ADDR
// vc_engine = engine_combustion ;
21936: LD_ADDR_OWVAR 39
21940: PUSH
21941: LD_INT 1
21943: ST_TO_ADDR
// av = CreateVehicle ;
21944: LD_ADDR_LOC 24
21948: PUSH
21949: CALL_OW 45
21953: ST_TO_ADDR
// pom = pom ^ av ;
21954: LD_ADDR_VAR 0 2
21958: PUSH
21959: LD_VAR 0 2
21963: PUSH
21964: LD_LOC 24
21968: ADD
21969: ST_TO_ADDR
// Arabi_komanda1 = pom ;
21970: LD_ADDR_EXP 65
21974: PUSH
21975: LD_VAR 0 2
21979: ST_TO_ADDR
// Arabi_komanda2 = pom ;
21980: LD_ADDR_EXP 66
21984: PUSH
21985: LD_VAR 0 2
21989: ST_TO_ADDR
// vc_weapon = ar_gun ;
21990: LD_ADDR_OWVAR 40
21994: PUSH
21995: LD_INT 27
21997: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
21998: LD_ADDR_OWVAR 37
22002: PUSH
22003: LD_INT 14
22005: ST_TO_ADDR
// vc_control = control_apeman ;
22006: LD_ADDR_OWVAR 38
22010: PUSH
22011: LD_INT 5
22013: ST_TO_ADDR
// vc_engine = engine_combustion ;
22014: LD_ADDR_OWVAR 39
22018: PUSH
22019: LD_INT 1
22021: ST_TO_ADDR
// av = CreateVehicle ;
22022: LD_ADDR_LOC 24
22026: PUSH
22027: CALL_OW 45
22031: ST_TO_ADDR
// pom = pom ^ av ;
22032: LD_ADDR_VAR 0 2
22036: PUSH
22037: LD_VAR 0 2
22041: PUSH
22042: LD_LOC 24
22046: ADD
22047: ST_TO_ADDR
// av = CreateVehicle ;
22048: LD_ADDR_LOC 24
22052: PUSH
22053: CALL_OW 45
22057: ST_TO_ADDR
// pom = pom ^ av ;
22058: LD_ADDR_VAR 0 2
22062: PUSH
22063: LD_VAR 0 2
22067: PUSH
22068: LD_LOC 24
22072: ADD
22073: ST_TO_ADDR
// vc_weapon = ar_gun ;
22074: LD_ADDR_OWVAR 40
22078: PUSH
22079: LD_INT 27
22081: ST_TO_ADDR
// av = CreateVehicle ;
22082: LD_ADDR_LOC 24
22086: PUSH
22087: CALL_OW 45
22091: ST_TO_ADDR
// pom = pom ^ av ;
22092: LD_ADDR_VAR 0 2
22096: PUSH
22097: LD_VAR 0 2
22101: PUSH
22102: LD_LOC 24
22106: ADD
22107: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
22108: LD_ADDR_VAR 0 2
22112: PUSH
22113: LD_VAR 0 2
22117: PUSH
22118: CALL 17338 0 0
22122: PPUSH
22123: LD_INT 1
22125: PPUSH
22126: LD_INT 6
22128: PPUSH
22129: LD_STRING 
22131: PPUSH
22132: CALL 17373 0 4
22136: ADD
22137: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
22138: LD_ADDR_VAR 0 2
22142: PUSH
22143: LD_VAR 0 2
22147: PUSH
22148: CALL 17338 0 0
22152: PPUSH
22153: LD_INT 1
22155: PPUSH
22156: LD_INT 6
22158: PPUSH
22159: LD_STRING 
22161: PPUSH
22162: CALL 17373 0 4
22166: ADD
22167: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 6 ,  ) ;
22168: LD_ADDR_LOC 23
22172: PUSH
22173: CALL 17338 0 0
22177: PPUSH
22178: LD_INT 3
22180: PPUSH
22181: LD_INT 6
22183: PPUSH
22184: LD_STRING 
22186: PPUSH
22187: CALL 17373 0 4
22191: ST_TO_ADDR
// vc_weapon = ar_gun ;
22192: LD_ADDR_OWVAR 40
22196: PUSH
22197: LD_INT 27
22199: ST_TO_ADDR
// vc_chassis = ar_medium_trike ;
22200: LD_ADDR_OWVAR 37
22204: PUSH
22205: LD_INT 13
22207: ST_TO_ADDR
// vc_control = control_manual ;
22208: LD_ADDR_OWVAR 38
22212: PUSH
22213: LD_INT 1
22215: ST_TO_ADDR
// vc_engine = engine_siberite ;
22216: LD_ADDR_OWVAR 39
22220: PUSH
22221: LD_INT 3
22223: ST_TO_ADDR
// av = CreateVehicle ;
22224: LD_ADDR_LOC 24
22228: PUSH
22229: CALL_OW 45
22233: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22234: LD_LOC 23
22238: PPUSH
22239: LD_LOC 24
22243: PPUSH
22244: CALL_OW 52
// pom = pom ^ av ;
22248: LD_ADDR_VAR 0 2
22252: PUSH
22253: LD_VAR 0 2
22257: PUSH
22258: LD_LOC 24
22262: ADD
22263: ST_TO_ADDR
// Arabi_komanda3 = pom ;
22264: LD_ADDR_EXP 67
22268: PUSH
22269: LD_VAR 0 2
22273: ST_TO_ADDR
// pom = get_human ( get_sex , class_soldier , 8 ,  ) ;
22274: LD_ADDR_VAR 0 2
22278: PUSH
22279: CALL 17338 0 0
22283: PPUSH
22284: LD_INT 1
22286: PPUSH
22287: LD_INT 8
22289: PPUSH
22290: LD_STRING 
22292: PPUSH
22293: CALL 17373 0 4
22297: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
22298: LD_ADDR_VAR 0 2
22302: PUSH
22303: LD_VAR 0 2
22307: PUSH
22308: CALL 17338 0 0
22312: PPUSH
22313: LD_INT 1
22315: PPUSH
22316: LD_INT 6
22318: PPUSH
22319: LD_STRING 
22321: PPUSH
22322: CALL 17373 0 4
22326: ADD
22327: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 6 ,  ) ;
22328: LD_ADDR_VAR 0 2
22332: PUSH
22333: LD_VAR 0 2
22337: PUSH
22338: CALL 17338 0 0
22342: PPUSH
22343: LD_INT 1
22345: PPUSH
22346: LD_INT 6
22348: PPUSH
22349: LD_STRING 
22351: PPUSH
22352: CALL 17373 0 4
22356: ADD
22357: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 6 ,  ) ;
22358: LD_ADDR_VAR 0 2
22362: PUSH
22363: LD_VAR 0 2
22367: PUSH
22368: CALL 17338 0 0
22372: PPUSH
22373: LD_INT 8
22375: PPUSH
22376: LD_INT 6
22378: PPUSH
22379: LD_STRING 
22381: PPUSH
22382: CALL 17373 0 4
22386: ADD
22387: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 6 ,  ) ;
22388: LD_ADDR_VAR 0 2
22392: PUSH
22393: LD_VAR 0 2
22397: PUSH
22398: CALL 17338 0 0
22402: PPUSH
22403: LD_INT 8
22405: PPUSH
22406: LD_INT 6
22408: PPUSH
22409: LD_STRING 
22411: PPUSH
22412: CALL 17373 0 4
22416: ADD
22417: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_scientistic , 6 ,  ) ;
22418: LD_ADDR_VAR 0 2
22422: PUSH
22423: LD_VAR 0 2
22427: PUSH
22428: CALL 17338 0 0
22432: PPUSH
22433: LD_INT 4
22435: PPUSH
22436: LD_INT 6
22438: PPUSH
22439: LD_STRING 
22441: PPUSH
22442: CALL 17373 0 4
22446: ADD
22447: ST_TO_ADDR
// Arabi_komanda4 = pom ;
22448: LD_ADDR_EXP 68
22452: PUSH
22453: LD_VAR 0 2
22457: ST_TO_ADDR
// end ;
22458: LD_VAR 0 1
22462: RET
// export function create_ru_posily_ma_utek ; var pom ; begin
22463: LD_INT 0
22465: PPUSH
22466: PPUSH
// uc_side = You2 ;
22467: LD_ADDR_OWVAR 20
22471: PUSH
22472: LD_EXP 2
22476: ST_TO_ADDR
// uc_nation = nation_russian ;
22477: LD_ADDR_OWVAR 21
22481: PUSH
22482: LD_INT 3
22484: ST_TO_ADDR
// pom = [ ] ;
22485: LD_ADDR_VAR 0 2
22489: PUSH
22490: EMPTY
22491: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 3 ,  ) ;
22492: LD_ADDR_LOC 23
22496: PUSH
22497: CALL 17338 0 0
22501: PPUSH
22502: LD_INT 3
22504: PPUSH
22505: LD_INT 3
22507: PPUSH
22508: LD_STRING 
22510: PPUSH
22511: CALL 17373 0 4
22515: ST_TO_ADDR
// vc_weapon = ru_heavy_machine_gun ;
22516: LD_ADDR_OWVAR 40
22520: PUSH
22521: LD_INT 42
22523: ST_TO_ADDR
// vc_chassis = ru_heavy_wheeled ;
22524: LD_ADDR_OWVAR 37
22528: PUSH
22529: LD_INT 23
22531: ST_TO_ADDR
// vc_control = control_manual ;
22532: LD_ADDR_OWVAR 38
22536: PUSH
22537: LD_INT 1
22539: ST_TO_ADDR
// vc_engine = engine_combustion ;
22540: LD_ADDR_OWVAR 39
22544: PUSH
22545: LD_INT 1
22547: ST_TO_ADDR
// av = CreateVehicle ;
22548: LD_ADDR_LOC 24
22552: PUSH
22553: CALL_OW 45
22557: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22558: LD_LOC 23
22562: PPUSH
22563: LD_LOC 24
22567: PPUSH
22568: CALL_OW 52
// pom = pom ^ av ;
22572: LD_ADDR_VAR 0 2
22576: PUSH
22577: LD_VAR 0 2
22581: PUSH
22582: LD_LOC 24
22586: ADD
22587: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 3 ,  ) ;
22588: LD_ADDR_LOC 23
22592: PUSH
22593: CALL 17338 0 0
22597: PPUSH
22598: LD_INT 3
22600: PPUSH
22601: LD_INT 3
22603: PPUSH
22604: LD_STRING 
22606: PPUSH
22607: CALL 17373 0 4
22611: ST_TO_ADDR
// vc_chassis = ru_medium_wheeled ;
22612: LD_ADDR_OWVAR 37
22616: PUSH
22617: LD_INT 21
22619: ST_TO_ADDR
// av = CreateVehicle ;
22620: LD_ADDR_LOC 24
22624: PUSH
22625: CALL_OW 45
22629: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
22630: LD_LOC 23
22634: PPUSH
22635: LD_LOC 24
22639: PPUSH
22640: CALL_OW 52
// pom = pom ^ av ;
22644: LD_ADDR_VAR 0 2
22648: PUSH
22649: LD_VAR 0 2
22653: PUSH
22654: LD_LOC 24
22658: ADD
22659: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 3 ,  ) ;
22660: LD_ADDR_VAR 0 2
22664: PUSH
22665: LD_VAR 0 2
22669: PUSH
22670: CALL 17338 0 0
22674: PPUSH
22675: LD_INT 1
22677: PPUSH
22678: LD_INT 3
22680: PPUSH
22681: LD_STRING 
22683: PPUSH
22684: CALL 17373 0 4
22688: ADD
22689: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 3 ,  ) ;
22690: LD_ADDR_VAR 0 2
22694: PUSH
22695: LD_VAR 0 2
22699: PUSH
22700: CALL 17338 0 0
22704: PPUSH
22705: LD_INT 1
22707: PPUSH
22708: LD_INT 3
22710: PPUSH
22711: LD_STRING 
22713: PPUSH
22714: CALL 17373 0 4
22718: ADD
22719: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 3 ,  ) ;
22720: LD_ADDR_VAR 0 2
22724: PUSH
22725: LD_VAR 0 2
22729: PUSH
22730: CALL 17338 0 0
22734: PPUSH
22735: LD_INT 1
22737: PPUSH
22738: LD_INT 3
22740: PPUSH
22741: LD_STRING 
22743: PPUSH
22744: CALL 17373 0 4
22748: ADD
22749: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , 3 ,  ) ;
22750: LD_ADDR_VAR 0 2
22754: PUSH
22755: LD_VAR 0 2
22759: PUSH
22760: CALL 17338 0 0
22764: PPUSH
22765: LD_INT 3
22767: PPUSH
22768: LD_INT 3
22770: PPUSH
22771: LD_STRING 
22773: PPUSH
22774: CALL 17373 0 4
22778: ADD
22779: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , 3 ,  ) ;
22780: LD_ADDR_VAR 0 2
22784: PUSH
22785: LD_VAR 0 2
22789: PUSH
22790: CALL 17338 0 0
22794: PPUSH
22795: LD_INT 3
22797: PPUSH
22798: LD_INT 3
22800: PPUSH
22801: LD_STRING 
22803: PPUSH
22804: CALL 17373 0 4
22808: ADD
22809: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mechanic , 3 ,  ) ;
22810: LD_ADDR_VAR 0 2
22814: PUSH
22815: LD_VAR 0 2
22819: PUSH
22820: CALL 17338 0 0
22824: PPUSH
22825: LD_INT 3
22827: PPUSH
22828: LD_INT 3
22830: PPUSH
22831: LD_STRING 
22833: PPUSH
22834: CALL 17373 0 4
22838: ADD
22839: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_engineer , 3 ,  ) ;
22840: LD_ADDR_VAR 0 2
22844: PUSH
22845: LD_VAR 0 2
22849: PUSH
22850: CALL 17338 0 0
22854: PPUSH
22855: LD_INT 2
22857: PPUSH
22858: LD_INT 3
22860: PPUSH
22861: LD_STRING 
22863: PPUSH
22864: CALL 17373 0 4
22868: ADD
22869: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_engineer , 3 ,  ) ;
22870: LD_ADDR_VAR 0 2
22874: PUSH
22875: LD_VAR 0 2
22879: PUSH
22880: CALL 17338 0 0
22884: PPUSH
22885: LD_INT 2
22887: PPUSH
22888: LD_INT 3
22890: PPUSH
22891: LD_STRING 
22893: PPUSH
22894: CALL 17373 0 4
22898: ADD
22899: ST_TO_ADDR
// RU_posily_na_utek = pom ;
22900: LD_ADDR_EXP 56
22904: PUSH
22905: LD_VAR 0 2
22909: ST_TO_ADDR
// end ;
22910: LD_VAR 0 1
22914: RET
// export function create_arabi_na_posily_kirovu ; var pom ; begin
22915: LD_INT 0
22917: PPUSH
22918: PPUSH
// pom = [ ] ;
22919: LD_ADDR_VAR 0 2
22923: PUSH
22924: EMPTY
22925: ST_TO_ADDR
// uc_side = Arabi ;
22926: LD_ADDR_OWVAR 20
22930: PUSH
22931: LD_EXP 5
22935: ST_TO_ADDR
// uc_nation = nation_arabian ;
22936: LD_ADDR_OWVAR 21
22940: PUSH
22941: LD_INT 2
22943: ST_TO_ADDR
// vc_weapon = ar_gun ;
22944: LD_ADDR_OWVAR 40
22948: PUSH
22949: LD_INT 27
22951: ST_TO_ADDR
// vc_chassis = ar_half_tracked ;
22952: LD_ADDR_OWVAR 37
22956: PUSH
22957: LD_INT 14
22959: ST_TO_ADDR
// vc_control = control_apeman ;
22960: LD_ADDR_OWVAR 38
22964: PUSH
22965: LD_INT 5
22967: ST_TO_ADDR
// vc_engine = engine_combustion ;
22968: LD_ADDR_OWVAR 39
22972: PUSH
22973: LD_INT 1
22975: ST_TO_ADDR
// av = CreateVehicle ;
22976: LD_ADDR_LOC 24
22980: PUSH
22981: CALL_OW 45
22985: ST_TO_ADDR
// pom = pom ^ av ;
22986: LD_ADDR_VAR 0 2
22990: PUSH
22991: LD_VAR 0 2
22995: PUSH
22996: LD_LOC 24
23000: ADD
23001: ST_TO_ADDR
// av = CreateVehicle ;
23002: LD_ADDR_LOC 24
23006: PUSH
23007: CALL_OW 45
23011: ST_TO_ADDR
// pom = pom ^ av ;
23012: LD_ADDR_VAR 0 2
23016: PUSH
23017: LD_VAR 0 2
23021: PUSH
23022: LD_LOC 24
23026: ADD
23027: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 5 ,  ) ;
23028: LD_ADDR_LOC 23
23032: PUSH
23033: CALL 17338 0 0
23037: PPUSH
23038: LD_INT 3
23040: PPUSH
23041: LD_INT 5
23043: PPUSH
23044: LD_STRING 
23046: PPUSH
23047: CALL 17373 0 4
23051: ST_TO_ADDR
// vc_control = control_manual ;
23052: LD_ADDR_OWVAR 38
23056: PUSH
23057: LD_INT 1
23059: ST_TO_ADDR
// av = CreateVehicle ;
23060: LD_ADDR_LOC 24
23064: PUSH
23065: CALL_OW 45
23069: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23070: LD_LOC 23
23074: PPUSH
23075: LD_LOC 24
23079: PPUSH
23080: CALL_OW 52
// pom = pom ^ av ;
23084: LD_ADDR_VAR 0 2
23088: PUSH
23089: LD_VAR 0 2
23093: PUSH
23094: LD_LOC 24
23098: ADD
23099: ST_TO_ADDR
// ah = get_human ( get_sex , class_mechanic , 5 ,  ) ;
23100: LD_ADDR_LOC 23
23104: PUSH
23105: CALL 17338 0 0
23109: PPUSH
23110: LD_INT 3
23112: PPUSH
23113: LD_INT 5
23115: PPUSH
23116: LD_STRING 
23118: PPUSH
23119: CALL 17373 0 4
23123: ST_TO_ADDR
// vc_control = control_manual ;
23124: LD_ADDR_OWVAR 38
23128: PUSH
23129: LD_INT 1
23131: ST_TO_ADDR
// av = CreateVehicle ;
23132: LD_ADDR_LOC 24
23136: PUSH
23137: CALL_OW 45
23141: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23142: LD_LOC 23
23146: PPUSH
23147: LD_LOC 24
23151: PPUSH
23152: CALL_OW 52
// pom = pom ^ av ;
23156: LD_ADDR_VAR 0 2
23160: PUSH
23161: LD_VAR 0 2
23165: PUSH
23166: LD_LOC 24
23170: ADD
23171: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 7 ,  ) ;
23172: LD_ADDR_VAR 0 2
23176: PUSH
23177: LD_VAR 0 2
23181: PUSH
23182: CALL 17338 0 0
23186: PPUSH
23187: LD_INT 1
23189: PPUSH
23190: LD_INT 7
23192: PPUSH
23193: LD_STRING 
23195: PPUSH
23196: CALL 17373 0 4
23200: ADD
23201: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_soldier , 7 ,  ) ;
23202: LD_ADDR_VAR 0 2
23206: PUSH
23207: LD_VAR 0 2
23211: PUSH
23212: CALL 17338 0 0
23216: PPUSH
23217: LD_INT 1
23219: PPUSH
23220: LD_INT 7
23222: PPUSH
23223: LD_STRING 
23225: PPUSH
23226: CALL 17373 0 4
23230: ADD
23231: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
23232: LD_ADDR_VAR 0 2
23236: PUSH
23237: LD_VAR 0 2
23241: PUSH
23242: CALL 17338 0 0
23246: PPUSH
23247: LD_INT 8
23249: PPUSH
23250: LD_INT 7
23252: PPUSH
23253: LD_STRING 
23255: PPUSH
23256: CALL 17373 0 4
23260: ADD
23261: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
23262: LD_ADDR_VAR 0 2
23266: PUSH
23267: LD_VAR 0 2
23271: PUSH
23272: CALL 17338 0 0
23276: PPUSH
23277: LD_INT 8
23279: PPUSH
23280: LD_INT 7
23282: PPUSH
23283: LD_STRING 
23285: PPUSH
23286: CALL 17373 0 4
23290: ADD
23291: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
23292: LD_ADDR_VAR 0 2
23296: PUSH
23297: LD_VAR 0 2
23301: PUSH
23302: CALL 17338 0 0
23306: PPUSH
23307: LD_INT 8
23309: PPUSH
23310: LD_INT 7
23312: PPUSH
23313: LD_STRING 
23315: PPUSH
23316: CALL 17373 0 4
23320: ADD
23321: ST_TO_ADDR
// pom = pom ^ get_human ( get_sex , class_mortar , 7 ,  ) ;
23322: LD_ADDR_VAR 0 2
23326: PUSH
23327: LD_VAR 0 2
23331: PUSH
23332: CALL 17338 0 0
23336: PPUSH
23337: LD_INT 8
23339: PPUSH
23340: LD_INT 7
23342: PPUSH
23343: LD_STRING 
23345: PPUSH
23346: CALL 17373 0 4
23350: ADD
23351: ST_TO_ADDR
// ARABI_KIROV_POSILY = pom ;
23352: LD_ADDR_EXP 64
23356: PUSH
23357: LD_VAR 0 2
23361: ST_TO_ADDR
// end ;
23362: LD_VAR 0 1
23366: RET
// export function create_cerpaci_ruske_auta ; var pom ; begin
23367: LD_INT 0
23369: PPUSH
23370: PPUSH
// pom = [ ] ;
23371: LD_ADDR_VAR 0 2
23375: PUSH
23376: EMPTY
23377: ST_TO_ADDR
// uc_nation = nation_russian ;
23378: LD_ADDR_OWVAR 21
23382: PUSH
23383: LD_INT 3
23385: ST_TO_ADDR
// uc_side = You2 ;
23386: LD_ADDR_OWVAR 20
23390: PUSH
23391: LD_EXP 2
23395: ST_TO_ADDR
// vc_weapon = ru_cargo_bay ;
23396: LD_ADDR_OWVAR 40
23400: PUSH
23401: LD_INT 51
23403: ST_TO_ADDR
// vc_chassis = ru_medium_wheeled ;
23404: LD_ADDR_OWVAR 37
23408: PUSH
23409: LD_INT 21
23411: ST_TO_ADDR
// vc_control = control_manual ;
23412: LD_ADDR_OWVAR 38
23416: PUSH
23417: LD_INT 1
23419: ST_TO_ADDR
// vc_engine = engine_combustion ;
23420: LD_ADDR_OWVAR 39
23424: PUSH
23425: LD_INT 1
23427: ST_TO_ADDR
// av = CreateVehicle ;
23428: LD_ADDR_LOC 24
23432: PUSH
23433: CALL_OW 45
23437: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 4 ,  ) ;
23438: LD_ADDR_LOC 23
23442: PUSH
23443: CALL 17338 0 0
23447: PPUSH
23448: LD_INT 1
23450: PPUSH
23451: LD_INT 4
23453: PPUSH
23454: LD_STRING 
23456: PPUSH
23457: CALL 17373 0 4
23461: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23462: LD_LOC 23
23466: PPUSH
23467: LD_LOC 24
23471: PPUSH
23472: CALL_OW 52
// SetCargo ( av , mat_oil , 100 ) ;
23476: LD_LOC 24
23480: PPUSH
23481: LD_INT 2
23483: PPUSH
23484: LD_INT 100
23486: PPUSH
23487: CALL_OW 290
// pom = pom ^ av ;
23491: LD_ADDR_VAR 0 2
23495: PUSH
23496: LD_VAR 0 2
23500: PUSH
23501: LD_LOC 24
23505: ADD
23506: ST_TO_ADDR
// av = CreateVehicle ;
23507: LD_ADDR_LOC 24
23511: PUSH
23512: CALL_OW 45
23516: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 4 ,  ) ;
23517: LD_ADDR_LOC 23
23521: PUSH
23522: CALL 17338 0 0
23526: PPUSH
23527: LD_INT 1
23529: PPUSH
23530: LD_INT 4
23532: PPUSH
23533: LD_STRING 
23535: PPUSH
23536: CALL 17373 0 4
23540: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23541: LD_LOC 23
23545: PPUSH
23546: LD_LOC 24
23550: PPUSH
23551: CALL_OW 52
// SetCargo ( av , mat_oil , 100 ) ;
23555: LD_LOC 24
23559: PPUSH
23560: LD_INT 2
23562: PPUSH
23563: LD_INT 100
23565: PPUSH
23566: CALL_OW 290
// pom = pom ^ av ;
23570: LD_ADDR_VAR 0 2
23574: PUSH
23575: LD_VAR 0 2
23579: PUSH
23580: LD_LOC 24
23584: ADD
23585: ST_TO_ADDR
// av = CreateVehicle ;
23586: LD_ADDR_LOC 24
23590: PUSH
23591: CALL_OW 45
23595: ST_TO_ADDR
// ah = get_human ( get_sex , class_soldier , 4 ,  ) ;
23596: LD_ADDR_LOC 23
23600: PUSH
23601: CALL 17338 0 0
23605: PPUSH
23606: LD_INT 1
23608: PPUSH
23609: LD_INT 4
23611: PPUSH
23612: LD_STRING 
23614: PPUSH
23615: CALL 17373 0 4
23619: ST_TO_ADDR
// PlaceHumanInUnit ( ah , av ) ;
23620: LD_LOC 23
23624: PPUSH
23625: LD_LOC 24
23629: PPUSH
23630: CALL_OW 52
// SetCargo ( av , mat_oil , 100 ) ;
23634: LD_LOC 24
23638: PPUSH
23639: LD_INT 2
23641: PPUSH
23642: LD_INT 100
23644: PPUSH
23645: CALL_OW 290
// pom = pom ^ av ;
23649: LD_ADDR_VAR 0 2
23653: PUSH
23654: LD_VAR 0 2
23658: PUSH
23659: LD_LOC 24
23663: ADD
23664: ST_TO_ADDR
// RUSI_CERPACI_AUTA_LIST = pom ;
23665: LD_ADDR_EXP 57
23669: PUSH
23670: LD_VAR 0 2
23674: ST_TO_ADDR
// end ; end_of_file
23675: LD_VAR 0 1
23679: RET
// var Am_hlidka ; var Am_pomoc ; export Am_posily ; export Prezite_posily ; every 0 0$0.1 do var i ;
23680: GO 23682
23682: DISABLE
23683: LD_INT 0
23685: PPUSH
// begin Am_hlidka = [ ] ;
23686: LD_ADDR_LOC 25
23690: PUSH
23691: EMPTY
23692: ST_TO_ADDR
// Am_pomoc = [ ] ;
23693: LD_ADDR_LOC 26
23697: PUSH
23698: EMPTY
23699: ST_TO_ADDR
// Prezite_posily = 0 ;
23700: LD_ADDR_EXP 71
23704: PUSH
23705: LD_INT 0
23707: ST_TO_ADDR
// for i in [ 101 , 102 , 103 ] do
23708: LD_ADDR_VAR 0 1
23712: PUSH
23713: LD_INT 101
23715: PUSH
23716: LD_INT 102
23718: PUSH
23719: LD_INT 103
23721: PUSH
23722: EMPTY
23723: LIST
23724: LIST
23725: LIST
23726: PUSH
23727: FOR_IN
23728: IFFALSE 23737
// enable ( i ) end ;
23730: LD_VAR 0 1
23734: ENABLE_MARKED
23735: GO 23727
23737: POP
23738: POP
23739: PPOPN 1
23741: END
// every 0 0$1 do var budovy ;
23742: GO 23744
23744: DISABLE
23745: LD_INT 0
23747: PPUSH
// begin ComEnterUnit ( Am_pru1 , Am_bar2 ) ;
23748: LD_INT 26
23750: PPUSH
23751: LD_INT 25
23753: PPUSH
23754: CALL_OW 120
// ComEnterUnit ( Am_pru2 , Am_bar2 ) ;
23758: LD_INT 27
23760: PPUSH
23761: LD_INT 25
23763: PPUSH
23764: CALL_OW 120
// ComEnterUnit ( Am_pru3 , Am_bar2 ) ;
23768: LD_INT 28
23770: PPUSH
23771: LD_INT 25
23773: PPUSH
23774: CALL_OW 120
// ComEnterUnit ( Am_vb1 , Am_bu1 ) ;
23778: LD_INT 29
23780: PPUSH
23781: LD_INT 7
23783: PPUSH
23784: CALL_OW 120
// ComEnterUnit ( Am_vb2 , Am_bu2 ) ;
23788: LD_INT 30
23790: PPUSH
23791: LD_INT 8
23793: PPUSH
23794: CALL_OW 120
// ComEnterUnit ( Am_vb3 , Am_bu3 ) ;
23798: LD_INT 31
23800: PPUSH
23801: LD_INT 19
23803: PPUSH
23804: CALL_OW 120
// ComEnterUnit ( Am_vb4 , Am_bu4 ) ;
23808: LD_INT 32
23810: PPUSH
23811: LD_INT 18
23813: PPUSH
23814: CALL_OW 120
// ComEnterUnit ( Am_sol1 , Am_bar1 ) ;
23818: LD_INT 38
23820: PPUSH
23821: LD_INT 11
23823: PPUSH
23824: CALL_OW 120
// ComEnterUnit ( Am_sol2 , Am_bar1 ) ;
23828: LD_INT 39
23830: PPUSH
23831: LD_INT 11
23833: PPUSH
23834: CALL_OW 120
// ComEnterUnit ( Am_sol3 , Am_bar1 ) ;
23838: LD_INT 40
23840: PPUSH
23841: LD_INT 11
23843: PPUSH
23844: CALL_OW 120
// ComEnterUnit ( pitomec , Am_bar2 ) ;
23848: LD_INT 63
23850: PPUSH
23851: LD_INT 25
23853: PPUSH
23854: CALL_OW 120
// ComEnterUnit ( Am_sol4 , Am_dep ) ;
23858: LD_INT 41
23860: PPUSH
23861: LD_INT 12
23863: PPUSH
23864: CALL_OW 120
// ComEnterUnit ( Am_eng1 , Am_dep ) ;
23868: LD_INT 36
23870: PPUSH
23871: LD_INT 12
23873: PPUSH
23874: CALL_OW 120
// ComEnterUnit ( Am_sci1 , Am_lab ) ;
23878: LD_INT 37
23880: PPUSH
23881: LD_INT 9
23883: PPUSH
23884: CALL_OW 120
// ComEnterUnit ( Am_me1 , Am_fac ) ;
23888: LD_INT 33
23890: PPUSH
23891: LD_INT 10
23893: PPUSH
23894: CALL_OW 120
// ComEnterUnit ( Am_me2 , Am_fac ) ;
23898: LD_INT 34
23900: PPUSH
23901: LD_INT 10
23903: PPUSH
23904: CALL_OW 120
// ComEnterUnit ( Am_me3 , Am_fac ) ;
23908: LD_INT 35
23910: PPUSH
23911: LD_INT 10
23913: PPUSH
23914: CALL_OW 120
// budovy = [ Am_bu1 , Am_bu2 , Am_bu3 , Am_bu4 , Am_el1 , Am_el2 , Am_lab , Am_fac , Am_mine , Am_dep , Am_bar1 , Am_bar2 ] ;
23918: LD_ADDR_VAR 0 1
23922: PUSH
23923: LD_INT 7
23925: PUSH
23926: LD_INT 8
23928: PUSH
23929: LD_INT 19
23931: PUSH
23932: LD_INT 18
23934: PUSH
23935: LD_INT 22
23937: PUSH
23938: LD_INT 23
23940: PUSH
23941: LD_INT 9
23943: PUSH
23944: LD_INT 10
23946: PUSH
23947: LD_INT 24
23949: PUSH
23950: LD_INT 12
23952: PUSH
23953: LD_INT 11
23955: PUSH
23956: LD_INT 25
23958: PUSH
23959: EMPTY
23960: LIST
23961: LIST
23962: LIST
23963: LIST
23964: LIST
23965: LIST
23966: LIST
23967: LIST
23968: LIST
23969: LIST
23970: LIST
23971: LIST
23972: ST_TO_ADDR
// SetBLevel ( budovy , levely_am_budov [ difficulty ] ) ;
23973: LD_VAR 0 1
23977: PPUSH
23978: LD_EXP 19
23982: PUSH
23983: LD_OWVAR 67
23987: ARRAY
23988: PPUSH
23989: CALL_OW 241
// end ;
23993: PPOPN 1
23995: END
// export function amici_hlidka ; begin
23996: LD_INT 0
23998: PPUSH
// case difficulty of 1 :
23999: LD_OWVAR 67
24003: PUSH
24004: LD_INT 1
24006: DOUBLE
24007: EQUAL
24008: IFTRUE 24012
24010: GO 24026
24012: POP
// Am_hlidka = [ Am_pru1 ] ; 2 :
24013: LD_ADDR_LOC 25
24017: PUSH
24018: LD_INT 26
24020: PUSH
24021: EMPTY
24022: LIST
24023: ST_TO_ADDR
24024: GO 24083
24026: LD_INT 2
24028: DOUBLE
24029: EQUAL
24030: IFTRUE 24034
24032: GO 24052
24034: POP
// Am_hlidka = [ Am_pru1 , Am_pru2 ] ; 3 :
24035: LD_ADDR_LOC 25
24039: PUSH
24040: LD_INT 26
24042: PUSH
24043: LD_INT 27
24045: PUSH
24046: EMPTY
24047: LIST
24048: LIST
24049: ST_TO_ADDR
24050: GO 24083
24052: LD_INT 3
24054: DOUBLE
24055: EQUAL
24056: IFTRUE 24060
24058: GO 24082
24060: POP
// Am_hlidka = [ Am_pru1 , Am_pru2 , Am_pru3 ] ; end ;
24061: LD_ADDR_LOC 25
24065: PUSH
24066: LD_INT 26
24068: PUSH
24069: LD_INT 27
24071: PUSH
24072: LD_INT 28
24074: PUSH
24075: EMPTY
24076: LIST
24077: LIST
24078: LIST
24079: ST_TO_ADDR
24080: GO 24083
24082: POP
// ComExitBuilding ( Am_hlidka ) ;
24083: LD_LOC 25
24087: PPUSH
24088: CALL_OW 122
// AddComAgressiveMove ( Am_hlidka , 34 , 16 ) ;
24092: LD_LOC 25
24096: PPUSH
24097: LD_INT 34
24099: PPUSH
24100: LD_INT 16
24102: PPUSH
24103: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24107: LD_LOC 25
24111: PPUSH
24112: LD_INT 245
24114: PPUSH
24115: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 51 , 19 ) ;
24119: LD_LOC 25
24123: PPUSH
24124: LD_INT 51
24126: PPUSH
24127: LD_INT 19
24129: PPUSH
24130: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24134: LD_LOC 25
24138: PPUSH
24139: LD_INT 245
24141: PPUSH
24142: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 54 , 5 ) ;
24146: LD_LOC 25
24150: PPUSH
24151: LD_INT 54
24153: PPUSH
24154: LD_INT 5
24156: PPUSH
24157: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24161: LD_LOC 25
24165: PPUSH
24166: LD_INT 245
24168: PPUSH
24169: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 77 , 16 ) ;
24173: LD_LOC 25
24177: PPUSH
24178: LD_INT 77
24180: PPUSH
24181: LD_INT 16
24183: PPUSH
24184: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24188: LD_LOC 25
24192: PPUSH
24193: LD_INT 245
24195: PPUSH
24196: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 81 , 32 ) ;
24200: LD_LOC 25
24204: PPUSH
24205: LD_INT 81
24207: PPUSH
24208: LD_INT 32
24210: PPUSH
24211: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24215: LD_LOC 25
24219: PPUSH
24220: LD_INT 245
24222: PPUSH
24223: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 73 , 32 ) ;
24227: LD_LOC 25
24231: PPUSH
24232: LD_INT 73
24234: PPUSH
24235: LD_INT 32
24237: PPUSH
24238: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24242: LD_LOC 25
24246: PPUSH
24247: LD_INT 245
24249: PPUSH
24250: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 57 , 33 ) ;
24254: LD_LOC 25
24258: PPUSH
24259: LD_INT 57
24261: PPUSH
24262: LD_INT 33
24264: PPUSH
24265: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24269: LD_LOC 25
24273: PPUSH
24274: LD_INT 245
24276: PPUSH
24277: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 45 , 24 ) ;
24281: LD_LOC 25
24285: PPUSH
24286: LD_INT 45
24288: PPUSH
24289: LD_INT 24
24291: PPUSH
24292: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24296: LD_LOC 25
24300: PPUSH
24301: LD_INT 245
24303: PPUSH
24304: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 13 ) ;
24308: LD_LOC 25
24312: PPUSH
24313: LD_INT 34
24315: PPUSH
24316: LD_INT 13
24318: PPUSH
24319: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24323: LD_LOC 25
24327: PPUSH
24328: LD_INT 245
24330: PPUSH
24331: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 16 ) ;
24335: LD_LOC 25
24339: PPUSH
24340: LD_INT 34
24342: PPUSH
24343: LD_INT 16
24345: PPUSH
24346: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24350: LD_LOC 25
24354: PPUSH
24355: LD_INT 245
24357: PPUSH
24358: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 51 , 19 ) ;
24362: LD_LOC 25
24366: PPUSH
24367: LD_INT 51
24369: PPUSH
24370: LD_INT 19
24372: PPUSH
24373: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24377: LD_LOC 25
24381: PPUSH
24382: LD_INT 245
24384: PPUSH
24385: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 54 , 5 ) ;
24389: LD_LOC 25
24393: PPUSH
24394: LD_INT 54
24396: PPUSH
24397: LD_INT 5
24399: PPUSH
24400: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24404: LD_LOC 25
24408: PPUSH
24409: LD_INT 245
24411: PPUSH
24412: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 77 , 16 ) ;
24416: LD_LOC 25
24420: PPUSH
24421: LD_INT 77
24423: PPUSH
24424: LD_INT 16
24426: PPUSH
24427: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24431: LD_LOC 25
24435: PPUSH
24436: LD_INT 245
24438: PPUSH
24439: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 81 , 32 ) ;
24443: LD_LOC 25
24447: PPUSH
24448: LD_INT 81
24450: PPUSH
24451: LD_INT 32
24453: PPUSH
24454: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24458: LD_LOC 25
24462: PPUSH
24463: LD_INT 245
24465: PPUSH
24466: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 73 , 32 ) ;
24470: LD_LOC 25
24474: PPUSH
24475: LD_INT 73
24477: PPUSH
24478: LD_INT 32
24480: PPUSH
24481: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24485: LD_LOC 25
24489: PPUSH
24490: LD_INT 245
24492: PPUSH
24493: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 57 , 33 ) ;
24497: LD_LOC 25
24501: PPUSH
24502: LD_INT 57
24504: PPUSH
24505: LD_INT 33
24507: PPUSH
24508: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24512: LD_LOC 25
24516: PPUSH
24517: LD_INT 245
24519: PPUSH
24520: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 45 , 24 ) ;
24524: LD_LOC 25
24528: PPUSH
24529: LD_INT 45
24531: PPUSH
24532: LD_INT 24
24534: PPUSH
24535: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24539: LD_LOC 25
24543: PPUSH
24544: LD_INT 245
24546: PPUSH
24547: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 13 ) ;
24551: LD_LOC 25
24555: PPUSH
24556: LD_INT 34
24558: PPUSH
24559: LD_INT 13
24561: PPUSH
24562: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24566: LD_LOC 25
24570: PPUSH
24571: LD_INT 245
24573: PPUSH
24574: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 16 ) ;
24578: LD_LOC 25
24582: PPUSH
24583: LD_INT 34
24585: PPUSH
24586: LD_INT 16
24588: PPUSH
24589: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24593: LD_LOC 25
24597: PPUSH
24598: LD_INT 245
24600: PPUSH
24601: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 51 , 19 ) ;
24605: LD_LOC 25
24609: PPUSH
24610: LD_INT 51
24612: PPUSH
24613: LD_INT 19
24615: PPUSH
24616: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24620: LD_LOC 25
24624: PPUSH
24625: LD_INT 245
24627: PPUSH
24628: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 54 , 5 ) ;
24632: LD_LOC 25
24636: PPUSH
24637: LD_INT 54
24639: PPUSH
24640: LD_INT 5
24642: PPUSH
24643: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24647: LD_LOC 25
24651: PPUSH
24652: LD_INT 245
24654: PPUSH
24655: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 77 , 16 ) ;
24659: LD_LOC 25
24663: PPUSH
24664: LD_INT 77
24666: PPUSH
24667: LD_INT 16
24669: PPUSH
24670: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24674: LD_LOC 25
24678: PPUSH
24679: LD_INT 245
24681: PPUSH
24682: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 81 , 32 ) ;
24686: LD_LOC 25
24690: PPUSH
24691: LD_INT 81
24693: PPUSH
24694: LD_INT 32
24696: PPUSH
24697: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24701: LD_LOC 25
24705: PPUSH
24706: LD_INT 245
24708: PPUSH
24709: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 73 , 32 ) ;
24713: LD_LOC 25
24717: PPUSH
24718: LD_INT 73
24720: PPUSH
24721: LD_INT 32
24723: PPUSH
24724: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24728: LD_LOC 25
24732: PPUSH
24733: LD_INT 245
24735: PPUSH
24736: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 57 , 33 ) ;
24740: LD_LOC 25
24744: PPUSH
24745: LD_INT 57
24747: PPUSH
24748: LD_INT 33
24750: PPUSH
24751: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24755: LD_LOC 25
24759: PPUSH
24760: LD_INT 245
24762: PPUSH
24763: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 45 , 24 ) ;
24767: LD_LOC 25
24771: PPUSH
24772: LD_INT 45
24774: PPUSH
24775: LD_INT 24
24777: PPUSH
24778: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24782: LD_LOC 25
24786: PPUSH
24787: LD_INT 245
24789: PPUSH
24790: CALL_OW 202
// AddComAgressiveMove ( Am_hlidka , 34 , 13 ) ;
24794: LD_LOC 25
24798: PPUSH
24799: LD_INT 34
24801: PPUSH
24802: LD_INT 13
24804: PPUSH
24805: CALL_OW 174
// AddComWait ( Am_hlidka , 0 0$7 ) ;
24809: LD_LOC 25
24813: PPUSH
24814: LD_INT 245
24816: PPUSH
24817: CALL_OW 202
// enable ( 101 ) ;
24821: LD_INT 101
24823: ENABLE_MARKED
// enable ( 103 ) ;
24824: LD_INT 103
24826: ENABLE_MARKED
// enable ( 102 ) ;
24827: LD_INT 102
24829: ENABLE_MARKED
// end ;
24830: LD_VAR 0 1
24834: RET
// every 0 0$1 marked 102 do var i , j , pom ;
24835: GO 24837
24837: DISABLE
24838: LD_INT 0
24840: PPUSH
24841: PPUSH
24842: PPUSH
// begin pom = FilterAllUnits ( [ [ f_side , You ] , [ f_type , unit_human ] ] ) ;
24843: LD_ADDR_VAR 0 3
24847: PUSH
24848: LD_INT 22
24850: PUSH
24851: LD_EXP 1
24855: PUSH
24856: EMPTY
24857: LIST
24858: LIST
24859: PUSH
24860: LD_INT 21
24862: PUSH
24863: LD_INT 1
24865: PUSH
24866: EMPTY
24867: LIST
24868: LIST
24869: PUSH
24870: EMPTY
24871: LIST
24872: LIST
24873: PPUSH
24874: CALL_OW 69
24878: ST_TO_ADDR
// for i in Am_hlidka do
24879: LD_ADDR_VAR 0 1
24883: PUSH
24884: LD_LOC 25
24888: PUSH
24889: FOR_IN
24890: IFFALSE 24958
// if GetLives ( i ) < 1000 then
24892: LD_VAR 0 1
24896: PPUSH
24897: CALL_OW 256
24901: PUSH
24902: LD_INT 1000
24904: LESS
24905: IFFALSE 24956
// for j in pom do
24907: LD_ADDR_VAR 0 2
24911: PUSH
24912: LD_VAR 0 3
24916: PUSH
24917: FOR_IN
24918: IFFALSE 24954
// begin if See ( Amici , j ) then
24920: LD_EXP 4
24924: PPUSH
24925: LD_VAR 0 2
24929: PPUSH
24930: CALL_OW 292
24934: IFFALSE 24950
// ComAttackUnit ( Am_hlidka , j ) ;
24936: LD_LOC 25
24940: PPUSH
24941: LD_VAR 0 2
24945: PPUSH
24946: CALL_OW 115
// break ;
24950: GO 24954
// end ;
24952: GO 24917
24954: POP
24955: POP
24956: GO 24889
24958: POP
24959: POP
// end ;
24960: PPOPN 3
24962: END
// every 0 0$1 marked 101 do var i ; var jedn ; var posli ;
24963: GO 24965
24965: DISABLE
24966: LD_INT 0
24968: PPUSH
24969: PPUSH
24970: PPUSH
// begin jedn = [ ] ;
24971: LD_ADDR_VAR 0 2
24975: PUSH
24976: EMPTY
24977: ST_TO_ADDR
// posli = false ;
24978: LD_ADDR_VAR 0 3
24982: PUSH
24983: LD_INT 0
24985: ST_TO_ADDR
// for i in Am_hlidka do
24986: LD_ADDR_VAR 0 1
24990: PUSH
24991: LD_LOC 25
24995: PUSH
24996: FOR_IN
24997: IFFALSE 25032
// if GetLives ( i ) < 1000 then
24999: LD_VAR 0 1
25003: PPUSH
25004: CALL_OW 256
25008: PUSH
25009: LD_INT 1000
25011: LESS
25012: IFFALSE 25030
// jedn = jedn ^ i ;
25014: LD_ADDR_VAR 0 2
25018: PUSH
25019: LD_VAR 0 2
25023: PUSH
25024: LD_VAR 0 1
25028: ADD
25029: ST_TO_ADDR
25030: GO 24996
25032: POP
25033: POP
// if jedn > 0 then
25034: LD_VAR 0 2
25038: PUSH
25039: LD_INT 0
25041: GREATER
25042: IFFALSE 25087
// begin wait ( 0 0$7 ) ;
25044: LD_INT 245
25046: PPUSH
25047: CALL_OW 67
// for i in jedn do
25051: LD_ADDR_VAR 0 1
25055: PUSH
25056: LD_VAR 0 2
25060: PUSH
25061: FOR_IN
25062: IFFALSE 25085
// if IsOK ( i ) then
25064: LD_VAR 0 1
25068: PPUSH
25069: CALL_OW 302
25073: IFFALSE 25083
// posli = true ;
25075: LD_ADDR_VAR 0 3
25079: PUSH
25080: LD_INT 1
25082: ST_TO_ADDR
25083: GO 25061
25085: POP
25086: POP
// end ; if posli then
25087: LD_VAR 0 3
25091: IFFALSE 25106
// americka_pomoc_hlidce ( jedn [ 1 ] ) ;
25093: LD_VAR 0 2
25097: PUSH
25098: LD_INT 1
25100: ARRAY
25101: PPUSH
25102: CALL 25265 0 1
// enable ;
25106: ENABLE
// end ;
25107: PPOPN 3
25109: END
// every 0 0$1 marked 102 do
25110: GO 25112
25112: DISABLE
// begin wait ( schol_find_amikama [ difficulty ] ) ;
25113: LD_EXP 10
25117: PUSH
25118: LD_OWVAR 67
25122: ARRAY
25123: PPUSH
25124: CALL_OW 67
// if GetSide ( schol ) = You or GetSide ( schol2 ) = You then
25128: LD_EXP 31
25132: PPUSH
25133: CALL_OW 255
25137: PUSH
25138: LD_EXP 1
25142: EQUAL
25143: PUSH
25144: LD_EXP 32
25148: PPUSH
25149: CALL_OW 255
25153: PUSH
25154: LD_EXP 1
25158: EQUAL
25159: OR
25160: IFFALSE 25166
// exit else
25162: GO 25195
25164: GO 25195
// begin ComAgressiveMove ( Am_hlidka , 38 , 2 ) ;
25166: LD_LOC 25
25170: PPUSH
25171: LD_INT 38
25173: PPUSH
25174: LD_INT 2
25176: PPUSH
25177: CALL_OW 114
// AddComAttackUnit ( Am_hlidka , schol2 ) ;
25181: LD_LOC 25
25185: PPUSH
25186: LD_EXP 32
25190: PPUSH
25191: CALL_OW 175
// end ; end ;
25195: END
// every 0 0$3 trigger scholtze_saved or IsDead ( schol2 ) do
25196: LD_EXP 35
25200: PUSH
25201: LD_EXP 32
25205: PPUSH
25206: CALL_OW 301
25210: OR
25211: IFFALSE 25264
25213: GO 25215
25215: DISABLE
// begin ComAgressiveMove ( Am_hlidka , 28 , 18 ) ;
25216: LD_LOC 25
25220: PPUSH
25221: LD_INT 28
25223: PPUSH
25224: LD_INT 18
25226: PPUSH
25227: CALL_OW 114
// AddComEnterUnit ( Am_hlidka , Am_bar2 ) ;
25231: LD_LOC 25
25235: PPUSH
25236: LD_INT 25
25238: PPUSH
25239: CALL_OW 180
// ComAgressiveMove ( Am_pomoc , 21 , 32 ) ;
25243: LD_LOC 26
25247: PPUSH
25248: LD_INT 21
25250: PPUSH
25251: LD_INT 32
25253: PPUSH
25254: CALL_OW 114
// disable ( 101 ) ;
25258: LD_INT 101
25260: DISABLE_MARKED
// disable ( 102 ) ;
25261: LD_INT 102
25263: DISABLE_MARKED
// end ;
25264: END
// function americka_pomoc_hlidce ( jedn ) ; var i ; begin
25265: LD_INT 0
25267: PPUSH
25268: PPUSH
// Am_pomoc = AMERICKA_POMOC_HLIDCE_LIST ;
25269: LD_ADDR_LOC 26
25273: PUSH
25274: LD_EXP 48
25278: ST_TO_ADDR
// while SeeArea ( Amici , Help_area ) > 0 do
25279: LD_EXP 4
25283: PPUSH
25284: LD_INT 3
25286: PPUSH
25287: CALL_OW 294
25291: PUSH
25292: LD_INT 0
25294: GREATER
25295: IFFALSE 25306
// wait ( 0 0$1 ) ;
25297: LD_INT 35
25299: PPUSH
25300: CALL_OW 67
25304: GO 25279
// for i in AMERICKA_POMOC_HLIDCE_LIST do
25306: LD_ADDR_VAR 0 3
25310: PUSH
25311: LD_EXP 48
25315: PUSH
25316: FOR_IN
25317: IFFALSE 25336
// PlaceUnitArea ( i , Help_area , false ) ;
25319: LD_VAR 0 3
25323: PPUSH
25324: LD_INT 3
25326: PPUSH
25327: LD_INT 0
25329: PPUSH
25330: CALL_OW 49
25334: GO 25316
25336: POP
25337: POP
// wait ( 0 0$1 ) ;
25338: LD_INT 35
25340: PPUSH
25341: CALL_OW 67
// ComAgressiveMove ( Am_pomoc , GetX ( jedn ) , GetY ( jedn ) ) ;
25345: LD_LOC 26
25349: PPUSH
25350: LD_VAR 0 1
25354: PPUSH
25355: CALL_OW 250
25359: PPUSH
25360: LD_VAR 0 1
25364: PPUSH
25365: CALL_OW 251
25369: PPUSH
25370: CALL_OW 114
// end ;
25374: LD_VAR 0 2
25378: RET
// every 0 0$10 do
25379: GO 25381
25381: DISABLE
// begin wait ( Rand ( 1 , 0 0$30 ) ) ;
25382: LD_INT 1
25384: PPUSH
25385: LD_INT 1050
25387: PPUSH
25388: CALL_OW 12
25392: PPUSH
25393: CALL_OW 67
// wait ( posily1 [ difficulty ] ) ;
25397: LD_EXP 12
25401: PUSH
25402: LD_OWVAR 67
25406: ARRAY
25407: PPUSH
25408: CALL_OW 67
// posli_posily ( 1 ) ;
25412: LD_INT 1
25414: PPUSH
25415: CALL 25508 0 1
// wait ( posily11 [ difficulty ] ) ;
25419: LD_EXP 13
25423: PUSH
25424: LD_OWVAR 67
25428: ARRAY
25429: PPUSH
25430: CALL_OW 67
// posli_posily ( 11 ) ;
25434: LD_INT 11
25436: PPUSH
25437: CALL 25508 0 1
// wait ( posily2 [ difficulty ] ) ;
25441: LD_EXP 14
25445: PUSH
25446: LD_OWVAR 67
25450: ARRAY
25451: PPUSH
25452: CALL_OW 67
// posli_posily ( 2 ) ;
25456: LD_INT 2
25458: PPUSH
25459: CALL 25508 0 1
// wait ( posily3 [ difficulty ] ) ;
25463: LD_EXP 15
25467: PUSH
25468: LD_OWVAR 67
25472: ARRAY
25473: PPUSH
25474: CALL_OW 67
// posli_posily ( 3 ) ;
25478: LD_INT 3
25480: PPUSH
25481: CALL 25508 0 1
// wait ( posily4 [ difficulty ] ) ;
25485: LD_EXP 16
25489: PUSH
25490: LD_OWVAR 67
25494: ARRAY
25495: PPUSH
25496: CALL_OW 67
// posli_posily ( 4 ) ;
25500: LD_INT 4
25502: PPUSH
25503: CALL 25508 0 1
// end ;
25507: END
// function posli_posily ( ktere ) ; var i , pom ; var poc ; begin
25508: LD_INT 0
25510: PPUSH
25511: PPUSH
25512: PPUSH
25513: PPUSH
// poc = 0 ;
25514: LD_ADDR_VAR 0 5
25518: PUSH
25519: LD_INT 0
25521: ST_TO_ADDR
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_or , [ f_type , unit_human ] , [ f_type , unit_vehicle ] ] ] ) ;
25522: LD_ADDR_VAR 0 4
25526: PUSH
25527: LD_INT 6
25529: PPUSH
25530: LD_INT 22
25532: PUSH
25533: LD_EXP 4
25537: PUSH
25538: EMPTY
25539: LIST
25540: LIST
25541: PUSH
25542: LD_INT 2
25544: PUSH
25545: LD_INT 21
25547: PUSH
25548: LD_INT 1
25550: PUSH
25551: EMPTY
25552: LIST
25553: LIST
25554: PUSH
25555: LD_INT 21
25557: PUSH
25558: LD_INT 2
25560: PUSH
25561: EMPTY
25562: LIST
25563: LIST
25564: PUSH
25565: EMPTY
25566: LIST
25567: LIST
25568: LIST
25569: PUSH
25570: EMPTY
25571: LIST
25572: LIST
25573: PPUSH
25574: CALL_OW 70
25578: ST_TO_ADDR
// for i in pom do
25579: LD_ADDR_VAR 0 3
25583: PUSH
25584: LD_VAR 0 4
25588: PUSH
25589: FOR_IN
25590: IFFALSE 25653
// begin if pom in Am_posily then
25592: LD_VAR 0 4
25596: PUSH
25597: LD_EXP 70
25601: IN
25602: IFFALSE 25618
// poc = poc + 1 ;
25604: LD_ADDR_VAR 0 5
25608: PUSH
25609: LD_VAR 0 5
25613: PUSH
25614: LD_INT 1
25616: PLUS
25617: ST_TO_ADDR
// if Prezite_posily + poc > muze_prezit_posil [ difficulty ] then
25618: LD_EXP 71
25622: PUSH
25623: LD_VAR 0 5
25627: PLUS
25628: PUSH
25629: LD_EXP 21
25633: PUSH
25634: LD_OWVAR 67
25638: ARRAY
25639: GREATER
25640: IFFALSE 25651
// DestroyUnit ( i ) ;
25642: LD_VAR 0 3
25646: PPUSH
25647: CALL_OW 65
// end ;
25651: GO 25589
25653: POP
25654: POP
// Prezite_posily = Prezite_posily + poc ;
25655: LD_ADDR_EXP 71
25659: PUSH
25660: LD_EXP 71
25664: PUSH
25665: LD_VAR 0 5
25669: PLUS
25670: ST_TO_ADDR
// case ktere of 1 :
25671: LD_VAR 0 1
25675: PUSH
25676: LD_INT 1
25678: DOUBLE
25679: EQUAL
25680: IFTRUE 25684
25682: GO 25719
25684: POP
// for i in AMERICKE_POSILY1_LIST do
25685: LD_ADDR_VAR 0 3
25689: PUSH
25690: LD_EXP 49
25694: PUSH
25695: FOR_IN
25696: IFFALSE 25715
// PlaceUnitArea ( i , posily_1 , false ) ; 2 :
25698: LD_VAR 0 3
25702: PPUSH
25703: LD_INT 4
25705: PPUSH
25706: LD_INT 0
25708: PPUSH
25709: CALL_OW 49
25713: GO 25695
25715: POP
25716: POP
25717: GO 25892
25719: LD_INT 2
25721: DOUBLE
25722: EQUAL
25723: IFTRUE 25727
25725: GO 25762
25727: POP
// for i in AMERICKE_POSILY2_LIST do
25728: LD_ADDR_VAR 0 3
25732: PUSH
25733: LD_EXP 50
25737: PUSH
25738: FOR_IN
25739: IFFALSE 25758
// PlaceUnitArea ( i , posily_3 , false ) ; 3 :
25741: LD_VAR 0 3
25745: PPUSH
25746: LD_INT 5
25748: PPUSH
25749: LD_INT 0
25751: PPUSH
25752: CALL_OW 49
25756: GO 25738
25758: POP
25759: POP
25760: GO 25892
25762: LD_INT 3
25764: DOUBLE
25765: EQUAL
25766: IFTRUE 25770
25768: GO 25805
25770: POP
// for i in AMERICKE_POSILY3_LIST do
25771: LD_ADDR_VAR 0 3
25775: PUSH
25776: LD_EXP 51
25780: PUSH
25781: FOR_IN
25782: IFFALSE 25801
// PlaceUnitArea ( i , posily_1 , false ) ; 4 :
25784: LD_VAR 0 3
25788: PPUSH
25789: LD_INT 4
25791: PPUSH
25792: LD_INT 0
25794: PPUSH
25795: CALL_OW 49
25799: GO 25781
25801: POP
25802: POP
25803: GO 25892
25805: LD_INT 4
25807: DOUBLE
25808: EQUAL
25809: IFTRUE 25813
25811: GO 25848
25813: POP
// for i in AMERICKE_POSILY4_LIST do
25814: LD_ADDR_VAR 0 3
25818: PUSH
25819: LD_EXP 52
25823: PUSH
25824: FOR_IN
25825: IFFALSE 25844
// PlaceUnitArea ( i , posily_3 , false ) ; 11 :
25827: LD_VAR 0 3
25831: PPUSH
25832: LD_INT 5
25834: PPUSH
25835: LD_INT 0
25837: PPUSH
25838: CALL_OW 49
25842: GO 25824
25844: POP
25845: POP
25846: GO 25892
25848: LD_INT 11
25850: DOUBLE
25851: EQUAL
25852: IFTRUE 25856
25854: GO 25891
25856: POP
// for i in AMERICKE_POSILY11_LIST do
25857: LD_ADDR_VAR 0 3
25861: PUSH
25862: LD_EXP 53
25866: PUSH
25867: FOR_IN
25868: IFFALSE 25887
// PlaceUnitArea ( i , posily_1 , false ) ; end ;
25870: LD_VAR 0 3
25874: PPUSH
25875: LD_INT 4
25877: PPUSH
25878: LD_INT 0
25880: PPUSH
25881: CALL_OW 49
25885: GO 25867
25887: POP
25888: POP
25889: GO 25892
25891: POP
// case ktere of 1 :
25892: LD_VAR 0 1
25896: PUSH
25897: LD_INT 1
25899: DOUBLE
25900: EQUAL
25901: IFTRUE 25905
25903: GO 26122
25905: POP
// begin Am_posily = AMERICKE_POSILY1_LIST ;
25906: LD_ADDR_EXP 70
25910: PUSH
25911: LD_EXP 49
25915: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
25916: LD_EXP 70
25920: PPUSH
25921: LD_INT 42
25923: PPUSH
25924: LD_INT 69
25926: PPUSH
25927: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
25931: LD_EXP 70
25935: PPUSH
25936: LD_INT 35
25938: PPUSH
25939: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 42 , 69 ) ;
25943: LD_EXP 70
25947: PPUSH
25948: LD_INT 42
25950: PPUSH
25951: LD_INT 69
25953: PPUSH
25954: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
25958: LD_EXP 70
25962: PPUSH
25963: LD_INT 35
25965: PPUSH
25966: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 42 , 69 ) ;
25970: LD_EXP 70
25974: PPUSH
25975: LD_INT 42
25977: PPUSH
25978: LD_INT 69
25980: PPUSH
25981: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
25985: LD_EXP 70
25989: PPUSH
25990: LD_INT 35
25992: PPUSH
25993: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
25997: LD_EXP 70
26001: PPUSH
26002: LD_INT 28
26004: PPUSH
26005: LD_INT 47
26007: PPUSH
26008: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26012: LD_EXP 70
26016: PPUSH
26017: LD_INT 35
26019: PPUSH
26020: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26024: LD_EXP 70
26028: PPUSH
26029: LD_INT 28
26031: PPUSH
26032: LD_INT 47
26034: PPUSH
26035: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26039: LD_EXP 70
26043: PPUSH
26044: LD_INT 35
26046: PPUSH
26047: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26051: LD_EXP 70
26055: PPUSH
26056: LD_INT 28
26058: PPUSH
26059: LD_INT 47
26061: PPUSH
26062: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26066: LD_EXP 70
26070: PPUSH
26071: LD_INT 35
26073: PPUSH
26074: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26078: LD_EXP 70
26082: PPUSH
26083: LD_INT 28
26085: PPUSH
26086: LD_INT 47
26088: PPUSH
26089: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26093: LD_EXP 70
26097: PPUSH
26098: LD_INT 35
26100: PPUSH
26101: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 20 , 12 ) ;
26105: LD_EXP 70
26109: PPUSH
26110: LD_INT 20
26112: PPUSH
26113: LD_INT 12
26115: PPUSH
26116: CALL_OW 174
// end ; 3 :
26120: GO 27401
26122: LD_INT 3
26124: DOUBLE
26125: EQUAL
26126: IFTRUE 26130
26128: GO 26347
26130: POP
// begin Am_posily = AMERICKE_POSILY2_LIST ;
26131: LD_ADDR_EXP 70
26135: PUSH
26136: LD_EXP 50
26140: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
26141: LD_EXP 70
26145: PPUSH
26146: LD_INT 42
26148: PPUSH
26149: LD_INT 69
26151: PPUSH
26152: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26156: LD_EXP 70
26160: PPUSH
26161: LD_INT 35
26163: PPUSH
26164: CALL_OW 202
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
26168: LD_EXP 70
26172: PPUSH
26173: LD_INT 42
26175: PPUSH
26176: LD_INT 69
26178: PPUSH
26179: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26183: LD_EXP 70
26187: PPUSH
26188: LD_INT 35
26190: PPUSH
26191: CALL_OW 202
// ComAgressiveMove ( Am_posily , 42 , 69 ) ;
26195: LD_EXP 70
26199: PPUSH
26200: LD_INT 42
26202: PPUSH
26203: LD_INT 69
26205: PPUSH
26206: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26210: LD_EXP 70
26214: PPUSH
26215: LD_INT 35
26217: PPUSH
26218: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26222: LD_EXP 70
26226: PPUSH
26227: LD_INT 28
26229: PPUSH
26230: LD_INT 47
26232: PPUSH
26233: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26237: LD_EXP 70
26241: PPUSH
26242: LD_INT 35
26244: PPUSH
26245: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26249: LD_EXP 70
26253: PPUSH
26254: LD_INT 28
26256: PPUSH
26257: LD_INT 47
26259: PPUSH
26260: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26264: LD_EXP 70
26268: PPUSH
26269: LD_INT 35
26271: PPUSH
26272: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26276: LD_EXP 70
26280: PPUSH
26281: LD_INT 28
26283: PPUSH
26284: LD_INT 47
26286: PPUSH
26287: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26291: LD_EXP 70
26295: PPUSH
26296: LD_INT 35
26298: PPUSH
26299: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 28 , 47 ) ;
26303: LD_EXP 70
26307: PPUSH
26308: LD_INT 28
26310: PPUSH
26311: LD_INT 47
26313: PPUSH
26314: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26318: LD_EXP 70
26322: PPUSH
26323: LD_INT 35
26325: PPUSH
26326: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 20 , 12 ) ;
26330: LD_EXP 70
26334: PPUSH
26335: LD_INT 20
26337: PPUSH
26338: LD_INT 12
26340: PPUSH
26341: CALL_OW 174
// end ; 4 :
26345: GO 27401
26347: LD_INT 4
26349: DOUBLE
26350: EQUAL
26351: IFTRUE 26355
26353: GO 26788
26355: POP
// begin Am_posily = AMERICKE_POSILY3_LIST ;
26356: LD_ADDR_EXP 70
26360: PUSH
26361: LD_EXP 51
26365: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
26366: LD_EXP 70
26370: PPUSH
26371: LD_INT 110
26373: PPUSH
26374: LD_INT 23
26376: PPUSH
26377: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26381: LD_EXP 70
26385: PPUSH
26386: LD_INT 35
26388: PPUSH
26389: CALL_OW 202
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
26393: LD_EXP 70
26397: PPUSH
26398: LD_INT 110
26400: PPUSH
26401: LD_INT 23
26403: PPUSH
26404: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26408: LD_EXP 70
26412: PPUSH
26413: LD_INT 35
26415: PPUSH
26416: CALL_OW 202
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
26420: LD_EXP 70
26424: PPUSH
26425: LD_INT 110
26427: PPUSH
26428: LD_INT 23
26430: PPUSH
26431: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26435: LD_EXP 70
26439: PPUSH
26440: LD_INT 35
26442: PPUSH
26443: CALL_OW 202
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
26447: LD_EXP 70
26451: PPUSH
26452: LD_INT 110
26454: PPUSH
26455: LD_INT 23
26457: PPUSH
26458: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26462: LD_EXP 70
26466: PPUSH
26467: LD_INT 35
26469: PPUSH
26470: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
26474: LD_EXP 70
26478: PPUSH
26479: LD_INT 87
26481: PPUSH
26482: LD_INT 19
26484: PPUSH
26485: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26489: LD_EXP 70
26493: PPUSH
26494: LD_INT 35
26496: PPUSH
26497: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
26501: LD_EXP 70
26505: PPUSH
26506: LD_INT 87
26508: PPUSH
26509: LD_INT 19
26511: PPUSH
26512: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26516: LD_EXP 70
26520: PPUSH
26521: LD_INT 35
26523: PPUSH
26524: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
26528: LD_EXP 70
26532: PPUSH
26533: LD_INT 87
26535: PPUSH
26536: LD_INT 19
26538: PPUSH
26539: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26543: LD_EXP 70
26547: PPUSH
26548: LD_INT 35
26550: PPUSH
26551: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
26555: LD_EXP 70
26559: PPUSH
26560: LD_INT 87
26562: PPUSH
26563: LD_INT 19
26565: PPUSH
26566: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26570: LD_EXP 70
26574: PPUSH
26575: LD_INT 35
26577: PPUSH
26578: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26582: LD_EXP 70
26586: PPUSH
26587: LD_INT 52
26589: PPUSH
26590: LD_INT 12
26592: PPUSH
26593: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26597: LD_EXP 70
26601: PPUSH
26602: LD_INT 35
26604: PPUSH
26605: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26609: LD_EXP 70
26613: PPUSH
26614: LD_INT 52
26616: PPUSH
26617: LD_INT 12
26619: PPUSH
26620: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26624: LD_EXP 70
26628: PPUSH
26629: LD_INT 35
26631: PPUSH
26632: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26636: LD_EXP 70
26640: PPUSH
26641: LD_INT 52
26643: PPUSH
26644: LD_INT 12
26646: PPUSH
26647: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26651: LD_EXP 70
26655: PPUSH
26656: LD_INT 35
26658: PPUSH
26659: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26663: LD_EXP 70
26667: PPUSH
26668: LD_INT 52
26670: PPUSH
26671: LD_INT 12
26673: PPUSH
26674: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26678: LD_EXP 70
26682: PPUSH
26683: LD_INT 35
26685: PPUSH
26686: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26690: LD_EXP 70
26694: PPUSH
26695: LD_INT 52
26697: PPUSH
26698: LD_INT 12
26700: PPUSH
26701: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26705: LD_EXP 70
26709: PPUSH
26710: LD_INT 35
26712: PPUSH
26713: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26717: LD_EXP 70
26721: PPUSH
26722: LD_INT 52
26724: PPUSH
26725: LD_INT 12
26727: PPUSH
26728: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26732: LD_EXP 70
26736: PPUSH
26737: LD_INT 35
26739: PPUSH
26740: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
26744: LD_EXP 70
26748: PPUSH
26749: LD_INT 52
26751: PPUSH
26752: LD_INT 12
26754: PPUSH
26755: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26759: LD_EXP 70
26763: PPUSH
26764: LD_INT 35
26766: PPUSH
26767: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 27 , 13 ) ;
26771: LD_EXP 70
26775: PPUSH
26776: LD_INT 27
26778: PPUSH
26779: LD_INT 13
26781: PPUSH
26782: CALL_OW 174
// end ; 2 :
26786: GO 27401
26788: LD_INT 2
26790: DOUBLE
26791: EQUAL
26792: IFTRUE 26796
26794: GO 26932
26796: POP
// begin Am_posily = AMERICKE_POSILY4_LIST ;
26797: LD_ADDR_EXP 70
26801: PUSH
26802: LD_EXP 52
26806: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 112 , 22 ) ;
26807: LD_EXP 70
26811: PPUSH
26812: LD_INT 112
26814: PPUSH
26815: LD_INT 22
26817: PPUSH
26818: CALL_OW 114
// AddComWait ( Am_posily , 0 0$2 ) ;
26822: LD_EXP 70
26826: PPUSH
26827: LD_INT 70
26829: PPUSH
26830: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 86 , 18 ) ;
26834: LD_EXP 70
26838: PPUSH
26839: LD_INT 86
26841: PPUSH
26842: LD_INT 18
26844: PPUSH
26845: CALL_OW 174
// AddComWait ( Am_posily , 0 0$2 ) ;
26849: LD_EXP 70
26853: PPUSH
26854: LD_INT 70
26856: PPUSH
26857: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 77 , 34 ) ;
26861: LD_EXP 70
26865: PPUSH
26866: LD_INT 77
26868: PPUSH
26869: LD_INT 34
26871: PPUSH
26872: CALL_OW 174
// AddComWait ( Am_posily , 0 0$2 ) ;
26876: LD_EXP 70
26880: PPUSH
26881: LD_INT 70
26883: PPUSH
26884: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 51 , 37 ) ;
26888: LD_EXP 70
26892: PPUSH
26893: LD_INT 51
26895: PPUSH
26896: LD_INT 37
26898: PPUSH
26899: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
26903: LD_EXP 70
26907: PPUSH
26908: LD_INT 35
26910: PPUSH
26911: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 23 , 12 ) ;
26915: LD_EXP 70
26919: PPUSH
26920: LD_INT 23
26922: PPUSH
26923: LD_INT 12
26925: PPUSH
26926: CALL_OW 174
// end ; 11 :
26930: GO 27401
26932: LD_INT 11
26934: DOUBLE
26935: EQUAL
26936: IFTRUE 26940
26938: GO 27400
26940: POP
// begin Am_posily = AMERICKE_POSILY11_LIST ;
26941: LD_ADDR_EXP 70
26945: PUSH
26946: LD_EXP 53
26950: ST_TO_ADDR
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
26951: LD_EXP 70
26955: PPUSH
26956: LD_INT 110
26958: PPUSH
26959: LD_INT 23
26961: PPUSH
26962: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26966: LD_EXP 70
26970: PPUSH
26971: LD_INT 35
26973: PPUSH
26974: CALL_OW 202
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
26978: LD_EXP 70
26982: PPUSH
26983: LD_INT 110
26985: PPUSH
26986: LD_INT 23
26988: PPUSH
26989: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
26993: LD_EXP 70
26997: PPUSH
26998: LD_INT 35
27000: PPUSH
27001: CALL_OW 202
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
27005: LD_EXP 70
27009: PPUSH
27010: LD_INT 110
27012: PPUSH
27013: LD_INT 23
27015: PPUSH
27016: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
27020: LD_EXP 70
27024: PPUSH
27025: LD_INT 35
27027: PPUSH
27028: CALL_OW 202
// ComAgressiveMove ( Am_posily , 110 , 23 ) ;
27032: LD_EXP 70
27036: PPUSH
27037: LD_INT 110
27039: PPUSH
27040: LD_INT 23
27042: PPUSH
27043: CALL_OW 114
// AddComWait ( Am_posily , 0 0$1 ) ;
27047: LD_EXP 70
27051: PPUSH
27052: LD_INT 35
27054: PPUSH
27055: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
27059: LD_EXP 70
27063: PPUSH
27064: LD_INT 87
27066: PPUSH
27067: LD_INT 19
27069: PPUSH
27070: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27074: LD_EXP 70
27078: PPUSH
27079: LD_INT 35
27081: PPUSH
27082: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
27086: LD_EXP 70
27090: PPUSH
27091: LD_INT 87
27093: PPUSH
27094: LD_INT 19
27096: PPUSH
27097: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27101: LD_EXP 70
27105: PPUSH
27106: LD_INT 35
27108: PPUSH
27109: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
27113: LD_EXP 70
27117: PPUSH
27118: LD_INT 87
27120: PPUSH
27121: LD_INT 19
27123: PPUSH
27124: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27128: LD_EXP 70
27132: PPUSH
27133: LD_INT 35
27135: PPUSH
27136: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 87 , 19 ) ;
27140: LD_EXP 70
27144: PPUSH
27145: LD_INT 87
27147: PPUSH
27148: LD_INT 19
27150: PPUSH
27151: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27155: LD_EXP 70
27159: PPUSH
27160: LD_INT 35
27162: PPUSH
27163: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27167: LD_EXP 70
27171: PPUSH
27172: LD_INT 52
27174: PPUSH
27175: LD_INT 12
27177: PPUSH
27178: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27182: LD_EXP 70
27186: PPUSH
27187: LD_INT 35
27189: PPUSH
27190: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27194: LD_EXP 70
27198: PPUSH
27199: LD_INT 52
27201: PPUSH
27202: LD_INT 12
27204: PPUSH
27205: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27209: LD_EXP 70
27213: PPUSH
27214: LD_INT 35
27216: PPUSH
27217: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27221: LD_EXP 70
27225: PPUSH
27226: LD_INT 52
27228: PPUSH
27229: LD_INT 12
27231: PPUSH
27232: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27236: LD_EXP 70
27240: PPUSH
27241: LD_INT 35
27243: PPUSH
27244: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27248: LD_EXP 70
27252: PPUSH
27253: LD_INT 52
27255: PPUSH
27256: LD_INT 12
27258: PPUSH
27259: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27263: LD_EXP 70
27267: PPUSH
27268: LD_INT 35
27270: PPUSH
27271: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27275: LD_EXP 70
27279: PPUSH
27280: LD_INT 52
27282: PPUSH
27283: LD_INT 12
27285: PPUSH
27286: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27290: LD_EXP 70
27294: PPUSH
27295: LD_INT 35
27297: PPUSH
27298: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27302: LD_EXP 70
27306: PPUSH
27307: LD_INT 52
27309: PPUSH
27310: LD_INT 12
27312: PPUSH
27313: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27317: LD_EXP 70
27321: PPUSH
27322: LD_INT 35
27324: PPUSH
27325: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27329: LD_EXP 70
27333: PPUSH
27334: LD_INT 52
27336: PPUSH
27337: LD_INT 12
27339: PPUSH
27340: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27344: LD_EXP 70
27348: PPUSH
27349: LD_INT 35
27351: PPUSH
27352: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 52 , 12 ) ;
27356: LD_EXP 70
27360: PPUSH
27361: LD_INT 52
27363: PPUSH
27364: LD_INT 12
27366: PPUSH
27367: CALL_OW 174
// AddComWait ( Am_posily , 0 0$1 ) ;
27371: LD_EXP 70
27375: PPUSH
27376: LD_INT 35
27378: PPUSH
27379: CALL_OW 202
// AddComAgressiveMove ( Am_posily , 27 , 13 ) ;
27383: LD_EXP 70
27387: PPUSH
27388: LD_INT 27
27390: PPUSH
27391: LD_INT 13
27393: PPUSH
27394: CALL_OW 174
// end ; end ;
27398: GO 27401
27400: POP
// end ;
27401: LD_VAR 0 2
27405: RET
// every 1 1$7 do
27406: GO 27408
27408: DISABLE
// begin if Researched ( Amici , tech_Weap1 ) then
27409: LD_EXP 4
27413: PPUSH
27414: LD_INT 51
27416: PPUSH
27417: CALL_OW 325
27421: IFFALSE 27448
// begin SetTech ( tech_Weap1 , Amici , state_enabled ) ;
27423: LD_INT 51
27425: PPUSH
27426: LD_EXP 4
27430: PPUSH
27431: LD_INT 1
27433: PPUSH
27434: CALL_OW 322
// ComResearch ( Am_lab , tech_Weap1 ) ;
27438: LD_INT 9
27440: PPUSH
27441: LD_INT 51
27443: PPUSH
27444: CALL_OW 124
// end ; enable ;
27448: ENABLE
// end ;
27449: END
// every 0 0$19 do
27450: GO 27452
27452: DISABLE
// begin SetTech ( tech_Weap1 , Amici , state_enabled ) ;
27453: LD_INT 51
27455: PPUSH
27456: LD_EXP 4
27460: PPUSH
27461: LD_INT 1
27463: PPUSH
27464: CALL_OW 322
// ComResearch ( Am_lab , tech_Weap1 ) ;
27468: LD_INT 9
27470: PPUSH
27471: LD_INT 51
27473: PPUSH
27474: CALL_OW 124
// end ;
27478: END
// every 0 0$23 trigger Am_posily + 0 > 0 do var pom , i ; var vymaz ;
27479: LD_EXP 70
27483: PUSH
27484: LD_INT 0
27486: PLUS
27487: PUSH
27488: LD_INT 0
27490: GREATER
27491: IFFALSE 27574
27493: GO 27495
27495: DISABLE
27496: LD_INT 0
27498: PPUSH
27499: PPUSH
27500: PPUSH
// begin vymaz = true ;
27501: LD_ADDR_VAR 0 3
27505: PUSH
27506: LD_INT 1
27508: ST_TO_ADDR
// for i in Am_posily do
27509: LD_ADDR_VAR 0 2
27513: PUSH
27514: LD_EXP 70
27518: PUSH
27519: FOR_IN
27520: IFFALSE 27558
// if ( not IsInArea ( i , Am_base ) ) and IsLive ( i ) then
27522: LD_VAR 0 2
27526: PPUSH
27527: LD_INT 6
27529: PPUSH
27530: CALL_OW 308
27534: NOT
27535: PUSH
27536: LD_VAR 0 2
27540: PPUSH
27541: CALL_OW 300
27545: AND
27546: IFFALSE 27556
// vymaz = false ;
27548: LD_ADDR_VAR 0 3
27552: PUSH
27553: LD_INT 0
27555: ST_TO_ADDR
27556: GO 27519
27558: POP
27559: POP
// if vymaz then
27560: LD_VAR 0 3
27564: IFFALSE 27573
// Am_posily = [ ] ;
27566: LD_ADDR_EXP 70
27570: PUSH
27571: EMPTY
27572: ST_TO_ADDR
// enable ;
27573: ENABLE
// end ;
27574: PPOPN 3
27576: END
// every 0 0$13 do var pom ;
27577: GO 27579
27579: DISABLE
27580: LD_INT 0
27582: PPUSH
// begin pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_class , class_mechanic ] ] ) ;
27583: LD_ADDR_VAR 0 1
27587: PUSH
27588: LD_INT 6
27590: PPUSH
27591: LD_INT 22
27593: PUSH
27594: LD_EXP 4
27598: PUSH
27599: EMPTY
27600: LIST
27601: LIST
27602: PUSH
27603: LD_INT 25
27605: PUSH
27606: LD_INT 3
27608: PUSH
27609: EMPTY
27610: LIST
27611: LIST
27612: PUSH
27613: EMPTY
27614: LIST
27615: LIST
27616: PPUSH
27617: CALL_OW 70
27621: ST_TO_ADDR
// if pom > 0 then
27622: LD_VAR 0 1
27626: PUSH
27627: LD_INT 0
27629: GREATER
27630: IFFALSE 27644
// ComEnterUnit ( pom , Am_fac ) ;
27632: LD_VAR 0 1
27636: PPUSH
27637: LD_INT 10
27639: PPUSH
27640: CALL_OW 120
// enable ;
27644: ENABLE
// end ;
27645: PPOPN 1
27647: END
// every 0 0$17 do var pom ;
27648: GO 27650
27650: DISABLE
27651: LD_INT 0
27653: PPUSH
// begin pom = UnitsInside ( Am_fac ) ;
27654: LD_ADDR_VAR 0 1
27658: PUSH
27659: LD_INT 10
27661: PPUSH
27662: CALL_OW 313
27666: ST_TO_ADDR
// if pom > 3 then
27667: LD_VAR 0 1
27671: PUSH
27672: LD_INT 3
27674: GREATER
27675: IFFALSE 27696
// ComConstruct ( Am_fac , us_light_wheeled , engine_solar , control_manual , us_machine_gun ) ;
27677: LD_INT 10
27679: PPUSH
27680: LD_INT 1
27682: PPUSH
27683: LD_INT 2
27685: PPUSH
27686: LD_INT 1
27688: PPUSH
27689: LD_INT 2
27691: PPUSH
27692: CALL_OW 125
// while UnitsInside ( Am_fac ) > 3 do
27696: LD_INT 10
27698: PPUSH
27699: CALL_OW 313
27703: PUSH
27704: LD_INT 3
27706: GREATER
27707: IFFALSE 27718
// wait ( 0 0$10 ) ;
27709: LD_INT 350
27711: PPUSH
27712: CALL_OW 67
27716: GO 27696
// enable ;
27718: ENABLE
// end ;
27719: PPOPN 1
27721: END
// export function am_posily_videny_rusakama ; var i ; var videli ; begin
27722: LD_INT 0
27724: PPUSH
27725: PPUSH
27726: PPUSH
// videli = false ;
27727: LD_ADDR_VAR 0 3
27731: PUSH
27732: LD_INT 0
27734: ST_TO_ADDR
// for i in Am_posily do
27735: LD_ADDR_VAR 0 2
27739: PUSH
27740: LD_EXP 70
27744: PUSH
27745: FOR_IN
27746: IFFALSE 27774
// if See ( You , i ) then
27748: LD_EXP 1
27752: PPUSH
27753: LD_VAR 0 2
27757: PPUSH
27758: CALL_OW 292
27762: IFFALSE 27772
// videli = true ;
27764: LD_ADDR_VAR 0 3
27768: PUSH
27769: LD_INT 1
27771: ST_TO_ADDR
27772: GO 27745
27774: POP
27775: POP
// result := videli ;
27776: LD_ADDR_VAR 0 1
27780: PUSH
27781: LD_VAR 0 3
27785: ST_TO_ADDR
// end ;
27786: LD_VAR 0 1
27790: RET
// export function omicron_half_destroyed ; var pom , i ; var zije ; var a ; begin
27791: LD_INT 0
27793: PPUSH
27794: PPUSH
27795: PPUSH
27796: PPUSH
27797: PPUSH
// a = false ;
27798: LD_ADDR_VAR 0 5
27802: PUSH
27803: LD_INT 0
27805: ST_TO_ADDR
// if ( ( not IsOK ( Am_bu1 ) ) or ( GetSide ( Am_bu1 ) <> Amici ) ) and ( ( not IsOK ( Am_bu2 ) ) or GetSide ( Am_bu2 ) <> Amici ) and ( ( not IsOK ( Am_bu3 ) ) or GetSide ( Am_bu3 ) <> Amici ) and ( ( not IsOK ( Am_bar1 ) ) or GetSide ( Am_bar1 ) <> Amici ) and ( ( not IsOK ( Am_bar2 ) ) or GetSide ( Am_bar2 ) <> Amici ) then
27806: LD_INT 7
27808: PPUSH
27809: CALL_OW 302
27813: NOT
27814: PUSH
27815: LD_INT 7
27817: PPUSH
27818: CALL_OW 255
27822: PUSH
27823: LD_EXP 4
27827: NONEQUAL
27828: OR
27829: PUSH
27830: LD_INT 8
27832: PPUSH
27833: CALL_OW 302
27837: NOT
27838: PUSH
27839: LD_INT 8
27841: PPUSH
27842: CALL_OW 255
27846: PUSH
27847: LD_EXP 4
27851: NONEQUAL
27852: OR
27853: AND
27854: PUSH
27855: LD_INT 19
27857: PPUSH
27858: CALL_OW 302
27862: NOT
27863: PUSH
27864: LD_INT 19
27866: PPUSH
27867: CALL_OW 255
27871: PUSH
27872: LD_EXP 4
27876: NONEQUAL
27877: OR
27878: AND
27879: PUSH
27880: LD_INT 11
27882: PPUSH
27883: CALL_OW 302
27887: NOT
27888: PUSH
27889: LD_INT 11
27891: PPUSH
27892: CALL_OW 255
27896: PUSH
27897: LD_EXP 4
27901: NONEQUAL
27902: OR
27903: AND
27904: PUSH
27905: LD_INT 25
27907: PPUSH
27908: CALL_OW 302
27912: NOT
27913: PUSH
27914: LD_INT 25
27916: PPUSH
27917: CALL_OW 255
27921: PUSH
27922: LD_EXP 4
27926: NONEQUAL
27927: OR
27928: AND
27929: IFFALSE 27939
// a = true ;
27931: LD_ADDR_VAR 0 5
27935: PUSH
27936: LD_INT 1
27938: ST_TO_ADDR
// result = a ;
27939: LD_ADDR_VAR 0 1
27943: PUSH
27944: LD_VAR 0 5
27948: ST_TO_ADDR
// end ;
27949: LD_VAR 0 1
27953: RET
// export function stahnuti_amiku ; var i ; var pom , pom1 , pom2 , pomx ; begin
27954: LD_INT 0
27956: PPUSH
27957: PPUSH
27958: PPUSH
27959: PPUSH
27960: PPUSH
27961: PPUSH
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
27962: LD_ADDR_VAR 0 3
27966: PUSH
27967: LD_INT 6
27969: PPUSH
27970: LD_INT 22
27972: PUSH
27973: LD_EXP 4
27977: PUSH
27978: EMPTY
27979: LIST
27980: LIST
27981: PUSH
27982: LD_INT 21
27984: PUSH
27985: LD_INT 1
27987: PUSH
27988: EMPTY
27989: LIST
27990: LIST
27991: PUSH
27992: EMPTY
27993: LIST
27994: LIST
27995: PPUSH
27996: CALL_OW 70
28000: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
28001: LD_ADDR_VAR 0 5
28005: PUSH
28006: LD_INT 6
28008: PPUSH
28009: LD_INT 22
28011: PUSH
28012: LD_EXP 4
28016: PUSH
28017: EMPTY
28018: LIST
28019: LIST
28020: PUSH
28021: LD_INT 21
28023: PUSH
28024: LD_INT 3
28026: PUSH
28027: EMPTY
28028: LIST
28029: LIST
28030: PUSH
28031: EMPTY
28032: LIST
28033: LIST
28034: PPUSH
28035: CALL_OW 70
28039: ST_TO_ADDR
// for i in pom2 do
28040: LD_ADDR_VAR 0 2
28044: PUSH
28045: LD_VAR 0 5
28049: PUSH
28050: FOR_IN
28051: IFFALSE 28091
// if UnitsInside ( i ) <> 0 then
28053: LD_VAR 0 2
28057: PPUSH
28058: CALL_OW 313
28062: PUSH
28063: LD_INT 0
28065: NONEQUAL
28066: IFFALSE 28089
// pom = pom ^ UnitsInside ( i ) ;
28068: LD_ADDR_VAR 0 3
28072: PUSH
28073: LD_VAR 0 3
28077: PUSH
28078: LD_VAR 0 2
28082: PPUSH
28083: CALL_OW 313
28087: ADD
28088: ST_TO_ADDR
28089: GO 28050
28091: POP
28092: POP
// ComExitBuilding ( pom ) ;
28093: LD_VAR 0 3
28097: PPUSH
28098: CALL_OW 122
// AddComMoveXY ( pom , 6 , 2 ) ;
28102: LD_VAR 0 3
28106: PPUSH
28107: LD_INT 6
28109: PPUSH
28110: LD_INT 2
28112: PPUSH
28113: CALL_OW 171
// wait ( 0 0$1 ) ;
28117: LD_INT 35
28119: PPUSH
28120: CALL_OW 67
// while pom > 0 do
28124: LD_VAR 0 3
28128: PUSH
28129: LD_INT 0
28131: GREATER
28132: IFFALSE 28368
// begin pom1 = FilterUnitsInArea ( ODBER_AM2 , [ [ f_side , Amici ] ] ) ;
28134: LD_ADDR_VAR 0 4
28138: PUSH
28139: LD_INT 38
28141: PPUSH
28142: LD_INT 22
28144: PUSH
28145: LD_EXP 4
28149: PUSH
28150: EMPTY
28151: LIST
28152: LIST
28153: PUSH
28154: EMPTY
28155: LIST
28156: PPUSH
28157: CALL_OW 70
28161: ST_TO_ADDR
// for i in pom1 do
28162: LD_ADDR_VAR 0 2
28166: PUSH
28167: LD_VAR 0 4
28171: PUSH
28172: FOR_IN
28173: IFFALSE 28202
// begin RemoveUnit ( i ) ;
28175: LD_VAR 0 2
28179: PPUSH
28180: CALL_OW 64
// pom = pom diff i ;
28184: LD_ADDR_VAR 0 3
28188: PUSH
28189: LD_VAR 0 3
28193: PUSH
28194: LD_VAR 0 2
28198: DIFF
28199: ST_TO_ADDR
// end ;
28200: GO 28172
28202: POP
28203: POP
// wait ( 0 0$1 ) ;
28204: LD_INT 35
28206: PPUSH
28207: CALL_OW 67
// pom = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
28211: LD_ADDR_VAR 0 3
28215: PUSH
28216: LD_INT 6
28218: PPUSH
28219: LD_INT 22
28221: PUSH
28222: LD_EXP 4
28226: PUSH
28227: EMPTY
28228: LIST
28229: LIST
28230: PUSH
28231: LD_INT 21
28233: PUSH
28234: LD_INT 1
28236: PUSH
28237: EMPTY
28238: LIST
28239: LIST
28240: PUSH
28241: EMPTY
28242: LIST
28243: LIST
28244: PPUSH
28245: CALL_OW 70
28249: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_base , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
28250: LD_ADDR_VAR 0 5
28254: PUSH
28255: LD_INT 6
28257: PPUSH
28258: LD_INT 22
28260: PUSH
28261: LD_EXP 4
28265: PUSH
28266: EMPTY
28267: LIST
28268: LIST
28269: PUSH
28270: LD_INT 21
28272: PUSH
28273: LD_INT 3
28275: PUSH
28276: EMPTY
28277: LIST
28278: LIST
28279: PUSH
28280: EMPTY
28281: LIST
28282: LIST
28283: PPUSH
28284: CALL_OW 70
28288: ST_TO_ADDR
// for i in pom2 do
28289: LD_ADDR_VAR 0 2
28293: PUSH
28294: LD_VAR 0 5
28298: PUSH
28299: FOR_IN
28300: IFFALSE 28340
// if UnitsInside ( i ) <> 0 then
28302: LD_VAR 0 2
28306: PPUSH
28307: CALL_OW 313
28311: PUSH
28312: LD_INT 0
28314: NONEQUAL
28315: IFFALSE 28338
// pom = pom ^ UnitsInside ( i ) ;
28317: LD_ADDR_VAR 0 3
28321: PUSH
28322: LD_VAR 0 3
28326: PUSH
28327: LD_VAR 0 2
28331: PPUSH
28332: CALL_OW 313
28336: ADD
28337: ST_TO_ADDR
28338: GO 28299
28340: POP
28341: POP
// ComExitBuilding ( pom ) ;
28342: LD_VAR 0 3
28346: PPUSH
28347: CALL_OW 122
// AddComMoveXY ( pom , 6 , 2 ) ;
28351: LD_VAR 0 3
28355: PPUSH
28356: LD_INT 6
28358: PPUSH
28359: LD_INT 2
28361: PPUSH
28362: CALL_OW 171
// end ;
28366: GO 28124
// pom = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
28368: LD_ADDR_VAR 0 3
28372: PUSH
28373: LD_INT 22
28375: PPUSH
28376: LD_INT 22
28378: PUSH
28379: LD_EXP 4
28383: PUSH
28384: EMPTY
28385: LIST
28386: LIST
28387: PUSH
28388: LD_INT 21
28390: PUSH
28391: LD_INT 1
28393: PUSH
28394: EMPTY
28395: LIST
28396: LIST
28397: PUSH
28398: EMPTY
28399: LIST
28400: LIST
28401: PPUSH
28402: CALL_OW 70
28406: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
28407: LD_ADDR_VAR 0 5
28411: PUSH
28412: LD_INT 22
28414: PPUSH
28415: LD_INT 22
28417: PUSH
28418: LD_EXP 4
28422: PUSH
28423: EMPTY
28424: LIST
28425: LIST
28426: PUSH
28427: LD_INT 21
28429: PUSH
28430: LD_INT 3
28432: PUSH
28433: EMPTY
28434: LIST
28435: LIST
28436: PUSH
28437: EMPTY
28438: LIST
28439: LIST
28440: PPUSH
28441: CALL_OW 70
28445: ST_TO_ADDR
// for i in pom2 do
28446: LD_ADDR_VAR 0 2
28450: PUSH
28451: LD_VAR 0 5
28455: PUSH
28456: FOR_IN
28457: IFFALSE 28497
// if UnitsInside ( i ) <> 0 then
28459: LD_VAR 0 2
28463: PPUSH
28464: CALL_OW 313
28468: PUSH
28469: LD_INT 0
28471: NONEQUAL
28472: IFFALSE 28495
// pom = pom ^ UnitsInside ( i ) ;
28474: LD_ADDR_VAR 0 3
28478: PUSH
28479: LD_VAR 0 3
28483: PUSH
28484: LD_VAR 0 2
28488: PPUSH
28489: CALL_OW 313
28493: ADD
28494: ST_TO_ADDR
28495: GO 28456
28497: POP
28498: POP
// ComExitBuilding ( pom ) ;
28499: LD_VAR 0 3
28503: PPUSH
28504: CALL_OW 122
// AddComMoveXY ( pom , 138 , 40 ) ;
28508: LD_VAR 0 3
28512: PPUSH
28513: LD_INT 138
28515: PPUSH
28516: LD_INT 40
28518: PPUSH
28519: CALL_OW 171
// wait ( 0 0$1 ) ;
28523: LD_INT 35
28525: PPUSH
28526: CALL_OW 67
// while pom + 0 > 0 do
28530: LD_VAR 0 3
28534: PUSH
28535: LD_INT 0
28537: PLUS
28538: PUSH
28539: LD_INT 0
28541: GREATER
28542: IFFALSE 28778
// begin pom1 = FilterUnitsInArea ( ODBER_AM , [ [ f_side , Amici ] ] ) ;
28544: LD_ADDR_VAR 0 4
28548: PUSH
28549: LD_INT 35
28551: PPUSH
28552: LD_INT 22
28554: PUSH
28555: LD_EXP 4
28559: PUSH
28560: EMPTY
28561: LIST
28562: LIST
28563: PUSH
28564: EMPTY
28565: LIST
28566: PPUSH
28567: CALL_OW 70
28571: ST_TO_ADDR
// for i in pom1 do
28572: LD_ADDR_VAR 0 2
28576: PUSH
28577: LD_VAR 0 4
28581: PUSH
28582: FOR_IN
28583: IFFALSE 28612
// begin RemoveUnit ( i ) ;
28585: LD_VAR 0 2
28589: PPUSH
28590: CALL_OW 64
// pom = pom diff i ;
28594: LD_ADDR_VAR 0 3
28598: PUSH
28599: LD_VAR 0 3
28603: PUSH
28604: LD_VAR 0 2
28608: DIFF
28609: ST_TO_ADDR
// end ;
28610: GO 28582
28612: POP
28613: POP
// wait ( 0 0$1 ) ;
28614: LD_INT 35
28616: PPUSH
28617: CALL_OW 67
// pom = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_human ] ] ) ;
28621: LD_ADDR_VAR 0 3
28625: PUSH
28626: LD_INT 22
28628: PPUSH
28629: LD_INT 22
28631: PUSH
28632: LD_EXP 4
28636: PUSH
28637: EMPTY
28638: LIST
28639: LIST
28640: PUSH
28641: LD_INT 21
28643: PUSH
28644: LD_INT 1
28646: PUSH
28647: EMPTY
28648: LIST
28649: LIST
28650: PUSH
28651: EMPTY
28652: LIST
28653: LIST
28654: PPUSH
28655: CALL_OW 70
28659: ST_TO_ADDR
// pom2 = FilterUnitsInArea ( Am_bw_e , [ [ f_side , Amici ] , [ f_type , unit_building ] ] ) ;
28660: LD_ADDR_VAR 0 5
28664: PUSH
28665: LD_INT 22
28667: PPUSH
28668: LD_INT 22
28670: PUSH
28671: LD_EXP 4
28675: PUSH
28676: EMPTY
28677: LIST
28678: LIST
28679: PUSH
28680: LD_INT 21
28682: PUSH
28683: LD_INT 3
28685: PUSH
28686: EMPTY
28687: LIST
28688: LIST
28689: PUSH
28690: EMPTY
28691: LIST
28692: LIST
28693: PPUSH
28694: CALL_OW 70
28698: ST_TO_ADDR
// for i in pom2 do
28699: LD_ADDR_VAR 0 2
28703: PUSH
28704: LD_VAR 0 5
28708: PUSH
28709: FOR_IN
28710: IFFALSE 28750
// if UnitsInside ( i ) <> 0 then
28712: LD_VAR 0 2
28716: PPUSH
28717: CALL_OW 313
28721: PUSH
28722: LD_INT 0
28724: NONEQUAL
28725: IFFALSE 28748
// pom = pom ^ UnitsInside ( i ) ;
28727: LD_ADDR_VAR 0 3
28731: PUSH
28732: LD_VAR 0 3
28736: PUSH
28737: LD_VAR 0 2
28741: PPUSH
28742: CALL_OW 313
28746: ADD
28747: ST_TO_ADDR
28748: GO 28709
28750: POP
28751: POP
// ComExitBuilding ( pom ) ;
28752: LD_VAR 0 3
28756: PPUSH
28757: CALL_OW 122
// AddComMoveXY ( pom , 138 , 40 ) ;
28761: LD_VAR 0 3
28765: PPUSH
28766: LD_INT 138
28768: PPUSH
28769: LD_INT 40
28771: PPUSH
28772: CALL_OW 171
// end ;
28776: GO 28530
// end ; end_of_file
28778: LD_VAR 0 1
28782: RET
// var arabsky_utok_zacal ; export posilani_arabskych_hlidek ; every 0 0$0.1 do
28783: GO 28785
28785: DISABLE
// begin posilani_arabskych_hlidek = false ;
28786: LD_ADDR_EXP 72
28790: PUSH
28791: LD_INT 0
28793: ST_TO_ADDR
// end ;
28794: END
// export function utok_arabu ; var i , pom ; begin
28795: LD_INT 0
28797: PPUSH
28798: PPUSH
28799: PPUSH
// pom = FilterAllUnits ( [ [ f_side , You ] ] ) ;
28800: LD_ADDR_VAR 0 3
28804: PUSH
28805: LD_INT 22
28807: PUSH
28808: LD_EXP 1
28812: PUSH
28813: EMPTY
28814: LIST
28815: LIST
28816: PUSH
28817: EMPTY
28818: LIST
28819: PPUSH
28820: CALL_OW 69
28824: ST_TO_ADDR
// InGameOn ;
28825: CALL_OW 8
// ComStop ( pom ) ;
28829: LD_VAR 0 3
28833: PPUSH
28834: CALL_OW 141
// EnableVideoExclamations ;
28838: CALL_OW 498
// CenterNowOnXY ( 142 , 80 ) ;
28842: LD_INT 142
28844: PPUSH
28845: LD_INT 80
28847: PPUSH
28848: CALL_OW 86
// arabsky_utok_zacal = true ;
28852: LD_ADDR_LOC 27
28856: PUSH
28857: LD_INT 1
28859: ST_TO_ADDR
// posli_rusy_pryc ;
28860: CALL 8897 0 0
// schovej_kurina ;
28864: CALL 9996 0 0
// PlaceUnitArea ( ARABI_KAMIKADZE_LIST [ 1 ] , Opoce1 , false ) ;
28868: LD_EXP 58
28872: PUSH
28873: LD_INT 1
28875: ARRAY
28876: PPUSH
28877: LD_INT 10
28879: PPUSH
28880: LD_INT 0
28882: PPUSH
28883: CALL_OW 49
// PlaceUnitArea ( ARABI_KAMIKADZE_LIST [ 2 ] , Opoce2 , false ) ;
28887: LD_EXP 58
28891: PUSH
28892: LD_INT 2
28894: ARRAY
28895: PPUSH
28896: LD_INT 11
28898: PPUSH
28899: LD_INT 0
28901: PPUSH
28902: CALL_OW 49
// PlaceUnitArea ( ARABI_KAMIKADZE_LIST [ 3 ] , Opoce2 , false ) ;
28906: LD_EXP 58
28910: PUSH
28911: LD_INT 3
28913: ARRAY
28914: PPUSH
28915: LD_INT 11
28917: PPUSH
28918: LD_INT 0
28920: PPUSH
28921: CALL_OW 49
// ComMoveXY ( ARABI_KAMIKADZE_LIST [ 1 ] , 134 , 62 ) ;
28925: LD_EXP 58
28929: PUSH
28930: LD_INT 1
28932: ARRAY
28933: PPUSH
28934: LD_INT 134
28936: PPUSH
28937: LD_INT 62
28939: PPUSH
28940: CALL_OW 111
// AddComMoveXY ( ARABI_KAMIKADZE_LIST [ 1 ] , 133 , 69 ) ;
28944: LD_EXP 58
28948: PUSH
28949: LD_INT 1
28951: ARRAY
28952: PPUSH
28953: LD_INT 133
28955: PPUSH
28956: LD_INT 69
28958: PPUSH
28959: CALL_OW 171
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 1 ] , RU1_bu1 ) ;
28963: LD_EXP 58
28967: PUSH
28968: LD_INT 1
28970: ARRAY
28971: PPUSH
28972: LD_INT 3
28974: PPUSH
28975: CALL_OW 175
// ComMoveXY ( ARABI_KAMIKADZE_LIST [ 2 ] , 142 , 94 ) ;
28979: LD_EXP 58
28983: PUSH
28984: LD_INT 2
28986: ARRAY
28987: PPUSH
28988: LD_INT 142
28990: PPUSH
28991: LD_INT 94
28993: PPUSH
28994: CALL_OW 111
// AddComMoveXY ( ARABI_KAMIKADZE_LIST [ 2 ] , 140 , 90 ) ;
28998: LD_EXP 58
29002: PUSH
29003: LD_INT 2
29005: ARRAY
29006: PPUSH
29007: LD_INT 140
29009: PPUSH
29010: LD_INT 90
29012: PPUSH
29013: CALL_OW 171
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 2 ] , RU1_el1 ) ;
29017: LD_EXP 58
29021: PUSH
29022: LD_INT 2
29024: ARRAY
29025: PPUSH
29026: LD_INT 14
29028: PPUSH
29029: CALL_OW 175
// ComMoveXY ( ARABI_KAMIKADZE_LIST [ 3 ] , 143 , 94 ) ;
29033: LD_EXP 58
29037: PUSH
29038: LD_INT 3
29040: ARRAY
29041: PPUSH
29042: LD_INT 143
29044: PPUSH
29045: LD_INT 94
29047: PPUSH
29048: CALL_OW 111
// AddComMoveXY ( ARABI_KAMIKADZE_LIST [ 3 ] , 141 , 90 ) ;
29052: LD_EXP 58
29056: PUSH
29057: LD_INT 3
29059: ARRAY
29060: PPUSH
29061: LD_INT 141
29063: PPUSH
29064: LD_INT 90
29066: PPUSH
29067: CALL_OW 171
// AddComAttackUnit ( ARABI_KAMIKADZE_LIST [ 3 ] , RU1_el1 ) ;
29071: LD_EXP 58
29075: PUSH
29076: LD_INT 3
29078: ARRAY
29079: PPUSH
29080: LD_INT 14
29082: PPUSH
29083: CALL_OW 175
// music_nat = nation_arabian ;
29087: LD_ADDR_OWVAR 71
29091: PUSH
29092: LD_INT 2
29094: ST_TO_ADDR
// CenterOnXY ( 142 , 80 ) ;
29095: LD_INT 142
29097: PPUSH
29098: LD_INT 80
29100: PPUSH
29101: CALL_OW 84
// for i in ARABI_SELF_AUTA do
29105: LD_ADDR_VAR 0 2
29109: PUSH
29110: LD_EXP 61
29114: PUSH
29115: FOR_IN
29116: IFFALSE 29135
// PlaceUnitArea ( i , Arabi2 , false ) ;
29118: LD_VAR 0 2
29122: PPUSH
29123: LD_INT 13
29125: PPUSH
29126: LD_INT 0
29128: PPUSH
29129: CALL_OW 49
29133: GO 29115
29135: POP
29136: POP
// ComAttackUnit ( ARABI_SELF_AUTA [ 1 ] , RU1_bar2 ) ;
29137: LD_EXP 61
29141: PUSH
29142: LD_INT 1
29144: ARRAY
29145: PPUSH
29146: LD_INT 17
29148: PPUSH
29149: CALL_OW 115
// ComWait ( ARABI_SELF_AUTA [ 2 ] , 0 0$3 ) ;
29153: LD_EXP 61
29157: PUSH
29158: LD_INT 2
29160: ARRAY
29161: PPUSH
29162: LD_INT 105
29164: PPUSH
29165: CALL_OW 142
// AddComAttackUnit ( ARABI_SELF_AUTA [ 2 ] , RU1_bar2 ) ;
29169: LD_EXP 61
29173: PUSH
29174: LD_INT 2
29176: ARRAY
29177: PPUSH
29178: LD_INT 17
29180: PPUSH
29181: CALL_OW 175
// CenterOnXY ( 142 , 80 ) ;
29185: LD_INT 142
29187: PPUSH
29188: LD_INT 80
29190: PPUSH
29191: CALL_OW 84
// for i in ARABI_PRVNI_VLNA do
29195: LD_ADDR_VAR 0 2
29199: PUSH
29200: LD_EXP 59
29204: PUSH
29205: FOR_IN
29206: IFFALSE 29225
// PlaceUnitArea ( i , Arabi1 , false ) ;
29208: LD_VAR 0 2
29212: PPUSH
29213: LD_INT 12
29215: PPUSH
29216: LD_INT 0
29218: PPUSH
29219: CALL_OW 49
29223: GO 29205
29225: POP
29226: POP
// ComMoveXY ( ARABI_PRVNI_VLNA , 139 , 78 ) ;
29227: LD_EXP 59
29231: PPUSH
29232: LD_INT 139
29234: PPUSH
29235: LD_INT 78
29237: PPUSH
29238: CALL_OW 111
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_bar1 ) ;
29242: LD_EXP 59
29246: PPUSH
29247: LD_INT 2
29249: PPUSH
29250: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_bu2 ) ;
29254: LD_EXP 59
29258: PPUSH
29259: LD_INT 4
29261: PPUSH
29262: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_bu1 ) ;
29266: LD_EXP 59
29270: PPUSH
29271: LD_INT 3
29273: PPUSH
29274: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_lab2 ) ;
29278: LD_EXP 59
29282: PPUSH
29283: LD_INT 16
29285: PPUSH
29286: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_dep ) ;
29290: LD_EXP 59
29294: PPUSH
29295: LD_INT 1
29297: PPUSH
29298: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_lab1 ) ;
29302: LD_EXP 59
29306: PPUSH
29307: LD_INT 6
29309: PPUSH
29310: CALL_OW 175
// AddComAttackUnit ( ARABI_PRVNI_VLNA , RU1_fac ) ;
29314: LD_EXP 59
29318: PPUSH
29319: LD_INT 5
29321: PPUSH
29322: CALL_OW 175
// AddComAgressiveMove ( ARABI_PRVNI_VLNA , 143 , 79 ) ;
29326: LD_EXP 59
29330: PPUSH
29331: LD_INT 143
29333: PPUSH
29334: LD_INT 79
29336: PPUSH
29337: CALL_OW 174
// CenterOnXY ( 142 , 80 ) ;
29341: LD_INT 142
29343: PPUSH
29344: LD_INT 80
29346: PPUSH
29347: CALL_OW 84
// DisableVideoExclamations ;
29351: CALL_OW 499
// InGameOff ;
29355: CALL_OW 9
// interface_hidden := true ;
29359: LD_ADDR_OWVAR 54
29363: PUSH
29364: LD_INT 1
29366: ST_TO_ADDR
// kecy_behem_utoku_arabu ;
29367: CALL 14459 0 0
// InGameOn ;
29371: CALL_OW 8
// EnableVideoExclamations ;
29375: CALL_OW 498
// CenterOnXY ( 142 , 80 ) ;
29379: LD_INT 142
29381: PPUSH
29382: LD_INT 80
29384: PPUSH
29385: CALL_OW 84
// wait ( 0 0$4 ) ;
29389: LD_INT 140
29391: PPUSH
29392: CALL_OW 67
// posli_kurina_na_smrt ;
29396: CALL 10016 0 0
// for i in ARABI_FLAME_LIST do
29400: LD_ADDR_VAR 0 2
29404: PUSH
29405: LD_EXP 60
29409: PUSH
29410: FOR_IN
29411: IFFALSE 29430
// PlaceUnitArea ( i , Arabi2 , false ) ;
29413: LD_VAR 0 2
29417: PPUSH
29418: LD_INT 13
29420: PPUSH
29421: LD_INT 0
29423: PPUSH
29424: CALL_OW 49
29428: GO 29410
29430: POP
29431: POP
// ComMoveXY ( ARABI_FLAME_LIST , 139 , 78 ) ;
29432: LD_EXP 60
29436: PPUSH
29437: LD_INT 139
29439: PPUSH
29440: LD_INT 78
29442: PPUSH
29443: CALL_OW 111
// AddComAttackUnit ( ARABI_FLAME_LIST , RU1_bar1 ) ;
29447: LD_EXP 60
29451: PPUSH
29452: LD_INT 2
29454: PPUSH
29455: CALL_OW 175
// CenterOnXY ( 142 , 80 ) ;
29459: LD_INT 142
29461: PPUSH
29462: LD_INT 80
29464: PPUSH
29465: CALL_OW 84
// for i in ARABI_VOJACI do
29469: LD_ADDR_VAR 0 2
29473: PUSH
29474: LD_EXP 62
29478: PUSH
29479: FOR_IN
29480: IFFALSE 29499
// PlaceUnitArea ( i , Arabi1 , false ) ;
29482: LD_VAR 0 2
29486: PPUSH
29487: LD_INT 12
29489: PPUSH
29490: LD_INT 0
29492: PPUSH
29493: CALL_OW 49
29497: GO 29479
29499: POP
29500: POP
// ComMoveXY ( ARABI_VOJACI , 153 , 84 ) ;
29501: LD_EXP 62
29505: PPUSH
29506: LD_INT 153
29508: PPUSH
29509: LD_INT 84
29511: PPUSH
29512: CALL_OW 111
// AddComAgressiveMove ( ARABI_VOJACI , 150 , 83 ) ;
29516: LD_EXP 62
29520: PPUSH
29521: LD_INT 150
29523: PPUSH
29524: LD_INT 83
29526: PPUSH
29527: CALL_OW 174
// AddComAgressiveMove ( ARABI_VOJACI , 141 , 78 ) ;
29531: LD_EXP 62
29535: PPUSH
29536: LD_INT 141
29538: PPUSH
29539: LD_INT 78
29541: PPUSH
29542: CALL_OW 174
// AddComAgressiveMove ( ARABI_VOJACI , 141 , 86 ) ;
29546: LD_EXP 62
29550: PPUSH
29551: LD_INT 141
29553: PPUSH
29554: LD_INT 86
29556: PPUSH
29557: CALL_OW 174
// CenterOnXY ( 142 , 80 ) ;
29561: LD_INT 142
29563: PPUSH
29564: LD_INT 80
29566: PPUSH
29567: CALL_OW 84
// wait ( 0 0$5 ) ;
29571: LD_INT 175
29573: PPUSH
29574: CALL_OW 67
// for i in ARABI_doraz do
29578: LD_ADDR_VAR 0 2
29582: PUSH
29583: LD_EXP 63
29587: PUSH
29588: FOR_IN
29589: IFFALSE 29608
// PlaceUnitArea ( i , Arabi1 , false ) ;
29591: LD_VAR 0 2
29595: PPUSH
29596: LD_INT 12
29598: PPUSH
29599: LD_INT 0
29601: PPUSH
29602: CALL_OW 49
29606: GO 29588
29608: POP
29609: POP
// ComMoveXY ( ARABI_doraz , 153 , 85 ) ;
29610: LD_EXP 63
29614: PPUSH
29615: LD_INT 153
29617: PPUSH
29618: LD_INT 85
29620: PPUSH
29621: CALL_OW 111
// AddComAttackUnit ( ARABI_doraz , RU1_dep ) ;
29625: LD_EXP 63
29629: PPUSH
29630: LD_INT 1
29632: PPUSH
29633: CALL_OW 175
// AddComAttackUnit ( ARABI_doraz , RU1_lab1 ) ;
29637: LD_EXP 63
29641: PPUSH
29642: LD_INT 6
29644: PPUSH
29645: CALL_OW 175
// AddComAttackUnit ( ARABI_doraz , RU1_lab2 ) ;
29649: LD_EXP 63
29653: PPUSH
29654: LD_INT 16
29656: PPUSH
29657: CALL_OW 175
// end ;
29661: LD_VAR 0 1
29665: RET
// every 0 0$5 trigger arabsky_utok_zacal do var pom , pom1 , i ; var utek ;
29666: LD_LOC 27
29670: IFFALSE 29854
29672: GO 29674
29674: DISABLE
29675: LD_INT 0
29677: PPUSH
29678: PPUSH
29679: PPUSH
29680: PPUSH
// begin utek = [ ] ;
29681: LD_ADDR_VAR 0 4
29685: PUSH
29686: EMPTY
29687: ST_TO_ADDR
// pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] , [ f_ok ] ] ) ;
29688: LD_ADDR_VAR 0 1
29692: PUSH
29693: LD_INT 14
29695: PPUSH
29696: LD_INT 22
29698: PUSH
29699: LD_EXP 2
29703: PUSH
29704: EMPTY
29705: LIST
29706: LIST
29707: PUSH
29708: LD_INT 50
29710: PUSH
29711: EMPTY
29712: LIST
29713: PUSH
29714: EMPTY
29715: LIST
29716: LIST
29717: PPUSH
29718: CALL_OW 70
29722: ST_TO_ADDR
// if pom < 2 then
29723: LD_VAR 0 1
29727: PUSH
29728: LD_INT 2
29730: LESS
29731: IFFALSE 29828
// begin pom1 = FilterAllUnits ( [ [ f_side , Arabi ] , [ f_ok ] ] ) ;
29733: LD_ADDR_VAR 0 2
29737: PUSH
29738: LD_INT 22
29740: PUSH
29741: LD_EXP 5
29745: PUSH
29746: EMPTY
29747: LIST
29748: LIST
29749: PUSH
29750: LD_INT 50
29752: PUSH
29753: EMPTY
29754: LIST
29755: PUSH
29756: EMPTY
29757: LIST
29758: LIST
29759: PPUSH
29760: CALL_OW 69
29764: ST_TO_ADDR
// if pom1 > 0 then
29765: LD_VAR 0 2
29769: PUSH
29770: LD_INT 0
29772: GREATER
29773: IFFALSE 29828
// for i in pom1 do
29775: LD_ADDR_VAR 0 3
29779: PUSH
29780: LD_VAR 0 2
29784: PUSH
29785: FOR_IN
29786: IFFALSE 29826
// if utek < 3 then
29788: LD_VAR 0 4
29792: PUSH
29793: LD_INT 3
29795: LESS
29796: IFFALSE 29816
// utek = utek ^ i else
29798: LD_ADDR_VAR 0 4
29802: PUSH
29803: LD_VAR 0 4
29807: PUSH
29808: LD_VAR 0 3
29812: ADD
29813: ST_TO_ADDR
29814: GO 29824
// arabsky_utok_zacal = false ;
29816: LD_ADDR_LOC 27
29820: PUSH
29821: LD_INT 0
29823: ST_TO_ADDR
29824: GO 29785
29826: POP
29827: POP
// end ; if utek > 0 then
29828: LD_VAR 0 4
29832: PUSH
29833: LD_INT 0
29835: GREATER
29836: IFFALSE 29853
// ComMoveXY ( utek , 166 , 95 ) ;
29838: LD_VAR 0 4
29842: PPUSH
29843: LD_INT 166
29845: PPUSH
29846: LD_INT 95
29848: PPUSH
29849: CALL_OW 111
// enable ;
29853: ENABLE
// end ;
29854: PPOPN 4
29856: END
// every 0 0$3 trigger FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] , [ f_ok ] ] ) < 2 do var pom , i ;
29857: LD_INT 14
29859: PPUSH
29860: LD_INT 22
29862: PUSH
29863: LD_EXP 2
29867: PUSH
29868: EMPTY
29869: LIST
29870: LIST
29871: PUSH
29872: LD_INT 50
29874: PUSH
29875: EMPTY
29876: LIST
29877: PUSH
29878: EMPTY
29879: LIST
29880: LIST
29881: PPUSH
29882: CALL_OW 70
29886: PUSH
29887: LD_INT 2
29889: LESS
29890: IFFALSE 29954
29892: GO 29894
29894: DISABLE
29895: LD_INT 0
29897: PPUSH
29898: PPUSH
// begin pom = FilterUnitsInArea ( Arabi2 , [ [ f_side , Arabi ] ] ) ;
29899: LD_ADDR_VAR 0 1
29903: PUSH
29904: LD_INT 13
29906: PPUSH
29907: LD_INT 22
29909: PUSH
29910: LD_EXP 5
29914: PUSH
29915: EMPTY
29916: LIST
29917: LIST
29918: PUSH
29919: EMPTY
29920: LIST
29921: PPUSH
29922: CALL_OW 70
29926: ST_TO_ADDR
// for i in pom do
29927: LD_ADDR_VAR 0 2
29931: PUSH
29932: LD_VAR 0 1
29936: PUSH
29937: FOR_IN
29938: IFFALSE 29951
// RemoveUnit ( i ) ;
29940: LD_VAR 0 2
29944: PPUSH
29945: CALL_OW 64
29949: GO 29937
29951: POP
29952: POP
// enable ;
29953: ENABLE
// end ;
29954: PPOPN 2
29956: END
// every 0 0$4 trigger arabsky_utok_zacal do
29957: LD_LOC 27
29961: IFFALSE 30057
29963: GO 29965
29965: DISABLE
// begin if GetLives ( RU1_el1 ) < 1000 and GetLives ( RU1_el1 ) < 150 then
29966: LD_INT 14
29968: PPUSH
29969: CALL_OW 256
29973: PUSH
29974: LD_INT 1000
29976: LESS
29977: PUSH
29978: LD_INT 14
29980: PPUSH
29981: CALL_OW 256
29985: PUSH
29986: LD_INT 150
29988: LESS
29989: AND
29990: IFFALSE 30002
// SetLives ( RU1_el1 , 150 ) ;
29992: LD_INT 14
29994: PPUSH
29995: LD_INT 150
29997: PPUSH
29998: CALL_OW 234
// if GetLives ( RU1_el2 ) < 1000 and GetLives ( RU1_el2 ) < 150 then
30002: LD_INT 15
30004: PPUSH
30005: CALL_OW 256
30009: PUSH
30010: LD_INT 1000
30012: LESS
30013: PUSH
30014: LD_INT 15
30016: PPUSH
30017: CALL_OW 256
30021: PUSH
30022: LD_INT 150
30024: LESS
30025: AND
30026: IFFALSE 30038
// SetLives ( RU1_el2 , 150 ) ;
30028: LD_INT 15
30030: PPUSH
30031: LD_INT 150
30033: PPUSH
30034: CALL_OW 234
// if IsOK ( RU1_el1 ) or IsOK ( RU1_el2 ) then
30038: LD_INT 14
30040: PPUSH
30041: CALL_OW 302
30045: PUSH
30046: LD_INT 15
30048: PPUSH
30049: CALL_OW 302
30053: OR
30054: IFFALSE 30057
// enable ;
30056: ENABLE
// end ;
30057: END
// every 0 0$5 trigger FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] , [ f_ok ] ] ) <= 3 do
30058: LD_INT 14
30060: PPUSH
30061: LD_INT 22
30063: PUSH
30064: LD_EXP 2
30068: PUSH
30069: EMPTY
30070: LIST
30071: LIST
30072: PUSH
30073: LD_INT 50
30075: PUSH
30076: EMPTY
30077: LIST
30078: PUSH
30079: EMPTY
30080: LIST
30081: LIST
30082: PPUSH
30083: CALL_OW 70
30087: PUSH
30088: LD_INT 3
30090: LESSEQUAL
30091: IFFALSE 30128
30093: GO 30095
30095: DISABLE
// begin arabi_kirov_posily_posli ;
30096: CALL 30213 0 0
// DisableVideoExclamations ;
30100: CALL_OW 499
// music_nat = 0 ;
30104: LD_ADDR_OWVAR 71
30108: PUSH
30109: LD_INT 0
30111: ST_TO_ADDR
// chmo_6 ;
30112: CALL 17226 0 0
// InGameOff ;
30116: CALL_OW 9
// stav_omikron = 8 ;
30120: LD_ADDR_EXP 37
30124: PUSH
30125: LD_INT 8
30127: ST_TO_ADDR
// end ;
30128: END
// every 0 0$3 trigger FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] ] ) > 2 do var pom ;
30129: LD_INT 14
30131: PPUSH
30132: LD_INT 22
30134: PUSH
30135: LD_EXP 2
30139: PUSH
30140: EMPTY
30141: LIST
30142: LIST
30143: PUSH
30144: EMPTY
30145: LIST
30146: PPUSH
30147: CALL_OW 70
30151: PUSH
30152: LD_INT 2
30154: GREATER
30155: IFFALSE 30210
30157: GO 30159
30159: DISABLE
30160: LD_INT 0
30162: PPUSH
// begin pom = FilterUnitsInArea ( RU1_base , [ [ f_side , You2 ] ] ) ;
30163: LD_ADDR_VAR 0 1
30167: PUSH
30168: LD_INT 14
30170: PPUSH
30171: LD_INT 22
30173: PUSH
30174: LD_EXP 2
30178: PUSH
30179: EMPTY
30180: LIST
30181: LIST
30182: PUSH
30183: EMPTY
30184: LIST
30185: PPUSH
30186: CALL_OW 70
30190: ST_TO_ADDR
// ComAttackUnit ( ARABI_doraz , pom [ 1 ] ) ;
30191: LD_EXP 63
30195: PPUSH
30196: LD_VAR 0 1
30200: PUSH
30201: LD_INT 1
30203: ARRAY
30204: PPUSH
30205: CALL_OW 115
// enable ;
30209: ENABLE
// end ;
30210: PPOPN 1
30212: END
// function arabi_kirov_posily_posli ; var i ; begin
30213: LD_INT 0
30215: PPUSH
30216: PPUSH
// for i in ARABI_KIROV_POSILY do
30217: LD_ADDR_VAR 0 2
30221: PUSH
30222: LD_EXP 64
30226: PUSH
30227: FOR_IN
30228: IFFALSE 30247
// PlaceUnitArea ( i , Arabi3 , false ) ;
30230: LD_VAR 0 2
30234: PPUSH
30235: LD_INT 33
30237: PPUSH
30238: LD_INT 0
30240: PPUSH
30241: CALL_OW 49
30245: GO 30227
30247: POP
30248: POP
// ComAgressiveMove ( ARABI_KIROV_POSILY , 142 , 84 ) ;
30249: LD_EXP 64
30253: PPUSH
30254: LD_INT 142
30256: PPUSH
30257: LD_INT 84
30259: PPUSH
30260: CALL_OW 114
// end ;
30264: LD_VAR 0 1
30268: RET
